kleiner fehler in der schleife
-
Hallo, ich hab in meinem Programm nen kleinen Schönheitsfehler und ich weiß nicht wie ich ihn loswerde, oder was ihn hervorruft. Hier meine main():
int main() { char weiter = 'j'; Tree *tree_1 = NULL; DTreeNode t; tree_1 = allocTree( tree_1 ); printCurrent( tree_1 ); while (weiter == 'j') { spiel (tree_1); do { printf ("Weiterspielen ? [j/n]"); scanf ("%c", &weiter); } while (weiter != 'j' && weiter != 'n'); } system("PAUSE"); return 0; }
Wenn ich als Antwort auf "Weiterspielen" j oder n eingebe, funktioniert alles wie es soll, aber wenn ich irgendwas anderes eingebe, wird die Frage wiederholt, und zwar 2mal ?!? Was mach ich dagegen ?
-
Das kenne ich. Ich glaube, das liegt am Buffer. Wenn Du Windoof hast kannst Du einfach mit
fflush(stdin);
den Eingabebuffer leeren. Unter Linux habe ich mir eine Konstruktion mit
getchar()
gebaut, die das repariert.
Versuche es auch mal mit 0 und 1 statt 'n' und 'j'.
-
danke
das mit dem fflush funktioniert