scanf Problem(\n)
-
Hi ich habe eine do-while-schleife derart
do { printf("Kreis=k\nRechteck=r\nDreieck=d\n"); scanf("%c", &frage); while(getchar() != '\n') ; if(frage=='k' || frage=='K') { ....... } else if(frage=='r' || frage=='R') { ..... } else if(frage=='d' || frage=='D') { ...... } else { ..... } printf("Weiter? (j/n)"); scanf("%c", &ant); ant=getchar(); }while(ant=='j'); printf("Programm beendet\n"); }
Die Schleife läuft leider bei der zweiten abfrage nicht richtig
Ich denke das hat mit dem \n am ende des scanfs zu tun. Aber hebe ich dieses \n nicht mit der while schleife, die gleich danach folgt auf, so dass das Programm fehlerhaft laufen müsste???
Wo steckt hier der Fehler???
-
fflush() vor die Eingabe setzen um den Streampuffer zu leeren
und nimm die while-schliefe da wegEDIT: nochmal was zum Ende: du liest das Zeichen ein und gibst es weiter an ant und dann gibst du das '\n' an ant...du löscht somit deine Eingabe und überprüfst sie dann?