Tastatureingabe prüfen
-
Hallo,
leider gelingt es mir nicht, mein KonsolenProgramm weiterlaufen zu lassen, wenn bei cin>>n lediglich mit "Enter" quitiert wird (es wird also im Grunde nichts eingegeben).
Zwar habe ich Einiges probiert, kriege es aber nicht hin (bin eben kein Profi).Wie kann ich (bevor irgend etwas passiert), schon mal auf "Enter" prüfen ?
Über eine Hilfestellung oder Lösung würde ich mich freuen.
-
Ich bin mir nicht sicher, probier mal das:
#include<iostream> #include<string> using namespace std; main() { string str; // Wenn cin.get(); allein nicht geht, dann setz cin.sync(); oder cin.ignore(80,10); davor. cin.get(str); cout<<"String: "<<str; // Hier ebenfalls evtl. cin.sync(); oder cin.ignore(80,10); davorsetzen. cin.get(); }
[ Dieser Beitrag wurde am 26.05.2003 um 10:24 Uhr von Spieleprogrammierer editiert. ]
-
Vielen Dank,
Grundsätzlich klappt dass. Nun die Idee; wenn ich feststelle das na ein voreingestelltes Zeichen enthält oder void ist (es wurde ja lediglich mit ENTER quitiert), Abbruch oder Schleife.
Im anderen Fall erfolgt die reguläre Eingabeprozedur.Allerdings gibt mir die Ausgabe (siehe unten) zu Denken (Sonderzeichen !?!?).
Wie soll ich da einen Vergleich fahren ?.Hast Du vieleicht noch was in der Pfanne ? Wäre Klasse !
char na[16];
...
cout<<"\nWelcher Name: ";
cin.ignore(80,10);
cin.get(na[0]);
cout<<"\n"<<"na: "<<na<<"\n";
...Ausgabe..na: undefinierbare Sonderzeichen
-
Hat jemand noch eine andere Lösung ?
-
main() { string na; cout<<"\nWelcher Name: "; getline(cin,na); cout<<"\n"<<"na: "<<na<<"\n"; }
Eventuell (falls die Eingabe übersprungen wird)
musst du den Eingabepuffer noch loeschen.