ungewollte mehrfache Eingaben - Enter
-
Ich habe folgendes Problem und zwar tritt dies immer auf, wenn ich nacheinander verschiedene Eingaben einlesen lassen möchte. Ich sage also z.B. geben Sie eine Zahl ein, diese wird dann mit Enter bestätigt und eingelesen. Nun ist das Problem, dass er wenn das nächste mal eine Eingabe eingelesen wird, das Enter noch als Tastendruck registriert ist und er das dann quasi mit einliest.
Wie kann ich das beheben, dass er eben nicht immer das Enter für die nachfolgenden Einleseoperationen verwendet, so rattert er ja das ganze Programm durch ohne das ich noch was eingegeben habe.
-
nach jeder Eingabe stdin leeren (es gibt genug posts hier diesbzgl. außerdem gibt es einen Beitrag dazu in unserer FAQ).
Du verwendest bestimmt scanf. Nutze das nicht, lies lieber mit man: fgets und parse es mit
sscanf
. Dann hast du solche Probleme nicht.
-
Wenn du Windows benutzt dann fflush(stdin);
-
supertux schrieb:
Du verwendest bestimmt scanf. Nutze das nicht, lies lieber mit man: fgets und parse es mit
sscanf
. Dann hast du solche Probleme nicht.Man kann auch
scanf
anweisen, beim Lesen eines Zeichens, alle vorangegangenen Whitespaces zu überspringen.