c/c++ Eingabe zurücksetzen/puffer leeren
-
Hallo,
ich hab eine frage zu folgendem Code:
cout<< "Starte Spiel-Simulation!" << endl; Sleep(19500); cout << "Bereit? [ENTER] klicken!" << endl; getchar(); cout << "Viel Spass!" << endl; Sleep(2500); system("cls");
da ist eig. noch uninteressanter Text dazwischen, mit dem ich euch aber nicht nerven will.
Jetzt zur Frage:
Wenn man während der Sleepfunktion öfters Enter klickt, werden diese danach komplett übernommen. Kann man diesen puffer irg wie leeren? (cin.ignore() hat nicht so recht funktioniert..)
Ich will quasi, dass keine Eingabe bevor die Sleepfunktion abgelaufen ist, akzeptiert wird - also man auf jeden fall Enter klicken muss, wenncout << "Bereit? [ENTER] klicken!" << endl;
erscheint.
Danke schonmal im vorraus!
-
Schlau, dass du weder Code mit ignore zeigst noch erklärst, was "nicht so recht funktioniert" heißt - sonst hätte ja vielleicht jemand den Fehler korrigieren können.
-
manni66 schrieb:
Schlau, dass du weder Code mit ignore zeigst
was meinst du damit?
was "nicht so recht funktioniert" heißt, sollte klar sein:
geht nicht.
-
Mit "schlau" habe ich dich wohl überschätzt...
-
Diese Funktion leert Deinen Puffer unter Windows:
void consumeInput() { INPUT_RECORD ir; DWORD dummy; PeekConsoleInput(GetStdHandle(STD_INPUT_HANDLE), &ir, 1, &dummy); while(dummy) { ReadConsoleInput(GetStdHandle(STD_INPUT_HANDLE), &ir, 1, &dummy); PeekConsoleInput(GetStdHandle(STD_INPUT_HANDLE), &ir, 1, &dummy); } }
Sie benötigt den Header
windows.h