Tastaturpuffer leeren
-
Ich habe folgende Funktion benutzt:
do{ do{ ...; } while (!kbhit()); out<<"Abbrechen? (j/n): "; cin>>q; }while (q!='j');
wenn ich dann eine taste drücke steht das Zeichen nach der Abfrage nach Abbrechen... es steht ja da noch irgendwie im Tastaturpuffer...
aber wie lösche ich den... hab schon gesucht... fflush(stdin) geht net get.clear() geht auch net...
Wie geht es?
Danke!
-
Hier stehts drin: http://www.c-plusplus.net/forum/viewtopic-var-t-is-111042.html
-
das funktioniert nicht, wie dort beschrieben... die schleife wird nicht mehr ausgeführt, aber die aBFRAGE OB JA oder NEIN kommt nicht...es werden die zeichen ausgegeben, welche ich eingebe.
noch ne idee?
-
guck dir mal
cin.ignore()
an
-
ist ja das was der Michael E. vorgeschlagen hat... geht aber net.
bei:
cin.clear(); cin.ignore(cin.rdbuf()->in_avail()); cin.get();
passiert gat nix, außer das ich zeichen eingebe
wenn ich das cin.get weglasse..erscheint in Millisekunden die Abfrage j/n und dann gehts weiter...außer wenn ich die schleife mit j beende...
ist also nicht die wirklich gute lösung...
-
mach mal nur cin.ignore() nach cin