Problem mit return befehl
-
Ich habe folgendes problem... ich habe ein funktion geschrieben, die mit hilfe eines if befehls eine andere prozdeur starte, wenn die Variable back1 den "inhalt" 1 hat. Doch leider tritt immer die else funktion in Kraft, obwohl in back 1, 1 steht... kann mir einder sagen, was ich falsch mache??? Hier der quellcode...
So verarbeite ich die variabel back 1
case'2': clrscr(); back1 = hilfe(); if (back1 == 1) { clrscr(); rennen(); break; } else { clrscr(); printf("%c",back1); Sleep(1000); } break;
und so schreibe ich die zahl in die Variabel und gebe sie zurück
back = getch(); return back;
-
Du verwechselst 1 mit '1'.
-
thx jetzt klappt es, aber wo ist der unterschied???
-
1 ist die Zahl [int] Eins
'1' ist ein Zeichen [char] und hat den ASCII-Code 49 (glaube ich ), womit du
vorher verglichen hast. Da 49 immer ungleich 1 ist, trat immer der else-Block in Kraft.