Ich habe ein Programm wie dieses,Detecting ENTER-Taste in C++
char name[100];
char age[12];
cout << "Enter Name: ";
cin >> name;
cout << "Enter Age: ";
cin >> age;
Jetzt Alter ist ein optionales Feld, so Benutzer einfach die Taste ENTER drücken und diesen Wert als NULL haben. Aber das Problem ist, cin nimmt nicht die ENTER-Taste und bleibt einfach dort und wartet auf ein gültiges Tastatur-Zeichen oder eine numerische Eingabe.
Ich denke, das Problem ist, weil cin eine gültige Eingabe benötigt und somit für immer dort bleibt.
Also versuchte ich unten Ansatz zu erkennen ENTER-Taste für Alter drücken.
cout << "Enter Age: ";
if (cin.get() == '\n') {
cout << "ENTER WAS PRESSED" << endl;
}
Sobald der Benutzer die Eingabetaste drückt, nachdem er einen NAMEN eingegeben hat, geht es direkt in den IF-Zustand.
ich auch versucht:
getline(cin, age);
Aber das auch nicht einfach für eine Eingabe von dem Benutzer bei cout << "Age: ";
warten zu stoppen.
Der Benutzer kann entweder ein gültiges Alter eingeben oder einfach die EINGABETASTE drücken, um kein Alter einzugeben.
Für den folgenden Code:
cout << "Enter Name: ";
cin >> name;
cout << "Enter Age: ";
if (cin.get() == '\n') {
cout << "ENTER WAS PRESSED" << endl;
}
Die Ausgabe lautet:
Enter Name: asdf
Enter Age: ENTER WAS PRESSED
ich die Cursor auf warten will Altes eingeben: _
Wie kann ich das tun?
Zeigen Sie Ihren gesamten Code, wo das Problem 'wenn Sie Namen eingeben hinein geht nach wie vor, wenn' – Sniper
mit Code aktualisiert und aktuelle Ausgabe. –
Wenn Sie möchten, dass der Cursor auf 'Alter eingeben: _' wartet, wo möchten Sie dann die Ausgabe sehen? –