Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Falsche Variable wird ausgegeben

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
14.05.2004, 13:08 Uhr
RedEagle



der code:

C++:
void machine(char text[100], int lange, int grundfarbe, int anim_farbe, char sound_pfad[500], int posx, int posy, int wait)
{

int max = lange + posx;
int zahler;

for (int i=posx; i<max; i++)
{
  gotoxy(i,posy);
  textbackground(anim_farbe);
   cout << text[zahler];
   sound(sound_pfad);
  gotoxy(i-1,posy);
  textbackground(grundfarbe);
   cout << text[zahler-1];
  Sleep(wait);
  zahler++;
}
}



Die Animation läuft Perfekt, bis auf eins:
anstad text[], wird sound_pfad[] "animiert" ?? ob wohl an cout die variable "text" weitergeleitet wird ?
Außerdem wird der sound nicht abgespielt.

WAS MACHE ICH FALSCH; warum wird die Falsche Variable ausgegeben??
--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
14.05.2004, 14:40 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)


Wie wärs wenn du zahler mal initialisierst befor du ihn verwendest?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
14.05.2004, 15:17 Uhr
RedEagle



das macht die sache noch komische, es Funktioniert zwar, aber in den anderen Funktionen, wo die nach nem ähnlishcen Prinzip funktionieren, geht es auch, wenn ich nur int zahler; anstatt int zahler=0; schreibe

EGAL, es läuft un ich bin glücklich
--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
14.05.2004, 16:28 Uhr
ao

(Operator)



Zitat:
RedEagle postete
das macht die sache noch komische, es Funktioniert zwar, aber in den anderen Funktionen, wo die nach nem ähnlishcen Prinzip funktionieren, geht es auch, wenn ich nur int zahler; anstatt int zahler=0; schreibe

Das ist überhaupt nicht komisch, sondern in C(++) ganz normal. Wenn *du* eine Variable nicht initialisierst, tuts überhaupt keiner. Dann steht irgendwas drin, und wenn du das blind verwendest, kriegst du im günstigsten Fall sofort einen Absturz. Im ungünstigen gehts bei dir immer gut und crasht erst beim Kunden ...
Das ist der Preis, den man zahlt, wenn man eine hoch performante Sprache verwendet, die dem Programmierer die Entscheidung überlässt, welche Variablen initialisiert werden müssen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
14.05.2004, 16:52 Uhr
RedEagle



aha, ist mir neu, da ich bis zum letztes jahr noch mit TurboPascal gearbeitet habe, aber gut das mir das mal einer sagt, da ich das noch nirgendwo gelesen habe

danke
--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
14.05.2004, 18:41 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)


Und das hat sich vorher nie bemerkbar gemacht?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
14.05.2004, 21:20 Uhr
RedEagle



ne, das ist das 1. mal.
Deshalb hatte ich auch sowas garnicht erwartet, weils schon 1k mal fuktionierte
--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
14.05.2004, 21:21 Uhr
RedEagle



kann vileicht sein, das der DEV-CPP automatisch ne 0 reinmacht, wenn da ncihts hintersteht
(also:
ich schrteibe:
int var;
und der kompiler verarbeitet das dann als
int var=0;
nur dase es diesmal nciht funktionierte ??
--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
16.05.2004, 21:44 Uhr
ao

(Operator)



Zitat:
RedEagle postete
kann vileicht sein, das der DEV-CPP automatisch ne 0 reinmacht, wenn da ncihts hintersteht

Mit DEV-CPP sollte das nichts zu tun haben. Globale Variablen (solche, die außerhalb jeder Funktion deklariert werden) werden tatsächlich einmal zum Programmstart mit 0 initialisiert, das ist im C-Standard so vorgeschrieben, und alle braven Compiler halten sich daran. Lokale Variablen (innerhalb von Funktionen) müssen nicht initialisiert werden, und werden auch nicht.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
17.05.2004, 13:36 Uhr
RedEagle



aha, komisch, dass das nie in nem Buch erwähnt wurde, es wurde zwar immer initialisiert, aber ich dachte, das das nur gemacht wurde, um den Anfängern klar zu machen, das man von 0 zählt.

Und da ich schon erfahrung mit BASIC und TurboPascal hatte, habe ich drauf verzichtet.
--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: