Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge

Eingabe während Wartezeit löschen

Sovebämse / 2 Antworten / Baumansicht Nickles

In meinem Programm (C++ auf Konsole) muss ein Schüler eine Rechnung in einer bestimmten Zeit lösen. Tippt er nichts ein, wird die Lösung angezeigt, tippt er die falsche Lösung ein, wird "Falsch... richtige Lösung: ... " angezeigt.

Nun ist das Problem, dass der Schüler ev. länger als in der vorgegebenen Zeit zum Eintippen braucht. Er tippt also weiter Zahlen oder korrigiert, während bereits die Zeit abgelaufen und die Lösung angezeigt wird. Erscheint dann nach einer kurzem Pause die nächste Aufgabe, erscheinen dann jeweils die letzten 2-3 Zahlen, welche während der Wartephase bis zur nächsten Aufgabe noch hektisch eingetippt wurden, bereits hinter der neuen Aufgabe. Dies verwirrt den Schüler und führt, falls sogar noch Enter gedrückt wurde, zu mehrfach falschen Resultaten.

Wie kann ich also dafür sorgen, dass die eingegebenen Zeichen vor der nächsten Aufgabe nicht mehr auf dem Bildschirm ausgegeben werden?

Vielen Dank für die Hilfe
Thomas

bei Antwort benachrichtigen
thomas woelfer Sovebämse „Eingabe während Wartezeit löschen“
Optionen

naja, der einfachste weg ist wohl der, das du das einlesen der tastatureingabe selbst besorgst, statt eine library-funktion zu verwenden, die auch gleich ein echo davon ausgibt. dann kannst du selbst steuern, ob (und wann) tastatureingabe dazu führen, das etwas angezeigt (ode ausgewertet) wird.


die bessere lösung wäre aber sicher, das ganze in ein gui zu verpacken.

-thomas woelfer   

this posting contains no tpyos.
bei Antwort benachrichtigen
Sovebämse thomas woelfer „naja, der einfachste weg ist wohl der, das du das einlesen...“
Optionen

Danke für den Tipp. Ich habe es nun einfach so gelöst, dass nach jeder Lösungseingabe bzw. "Richtig-oder-Falsch-Antwort" Enter gedrückt werden muss. So erscheinen auch keine Zeichen mehr, welche aus Versehen eingegeben wurden.

Bin noch nicht so weit im Programmieren, darum musste ich ne einfachere Lösung haben ;-)

Gruss
Thomas

bei Antwort benachrichtigen