Eingabeaufforderung der Java-Konsole für Eingabe ENTER, bevor Sie fortfahren [duplizieren]

8

Ich erstelle eine einfache Geschichte, die den Benutzer gelegentlich dazu auffordert, ENTER zu drücken. Es funktioniert das erste Mal, wenn ich dazu auffordere, aber dann wird es sofort die anderen Eingabeaufforderungen ausführen, vielleicht weil das Programm so schnell läuft, bis Sie die EINGABETASTE gedrückt haben, hat es bereits die Eingabeaufforderungen überprüft.

Irgendwelche Ideen? Code unten.

%Vor%     
MasonAlt 03.10.2014, 18:12
quelle

2 Antworten

12

Der Grund, warum System.in.read das zweite Mal nicht blockiert, ist, dass, wenn der Benutzer das erste Mal ENTER drückt, zwei Bytes entsprechend \r und \n gespeichert werden.

Verwenden Sie stattdessen eine Scanner -Instanz:

%Vor%     
manouti 03.10.2014, 18:20
quelle
2

Wenn wir Ihren Ansatz beibehalten, System.in zu verwenden, müssen Sie die zu lesenden Bytes definieren und Ihren prompEnterKey folgendermaßen ändern:

%Vor%

Es wird funktionieren, wie Sie brauchen. Aber, wie die anderen sagten, können Sie verschiedene Ansätze wie die Klasse Scanner ausprobieren, diese Wahl liegt bei Ihnen.

    
Bruno Franco 03.10.2014 18:23
quelle

Tags und Links