Überprüfen Sie für eine leere Zeile mit cin
Möchte ich überprüfen, ob eine leere Zeile als Eingabe zur Ausführung einer bestimmten operation. Ich habe versucht, cin.peek() und prüfen, ob es gleich '\n', aber es macht keinen Sinn.
einen
b
c
leere Zeile (hier, ich möchte meine Aktion)
einen
Habe ich versucht diesen code:
char a,b,c;
cin>>a;
cin>>b;
cin>>c;
if(cin.peek()=='\n') {
cout<<a<<endl;
cout<<b<<endl;
cout<<c<<endl;
}
std::getline
?Wenn Sie Fragen zur Verwendung getline dann prüfen, für seine Länge. Ich bevorzuge die "cin>>" weil mein input werden mehrere Variablen in einer Zeile
Sie Lesen aus einer Datei?
Keine von Konsul @stardust_
InformationsquelleAutor Sami Eltamawy | 2013-04-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden
getline
, dann den string. Wenn der Benutzer in eine leere Zeile, die Zeichenkette leer. Wenn Sie nicht, können Sie tun, die weitere Bearbeitung auf den string. Sie können es sogar in eineistringstream
und behandeln Sie, als ob es auscin
.Hier ist ein Beispiel:
Ich fügte hinzu, ein Beispiel, das scheint ähnlich zu sein, was Sie tun.
Was ist, wenn der Eingabe-char Leerzeichen ' '? Wird dieser code überspringen Sie diesen Raum oder nehmen Sie es als input? std::istringstream iss(line); char ch; while (iss >> ch) data_q.push(ch);
Es wird es zu überspringen, aber Sie können leicht ändern Sie es an Ihre Wünsche anzupassen. Es wird nicht behandeln Sie es als eine leere Zeile, wenn es das ist, was Sie Fragen.
Nein. Sie können tun, was Sie wollen, wenn die Zeile leer ist. Sie haben nicht einmal eine Warteschlange haben. Ich war nur mit einem Beispiel, das hat etwas, wie das, was ich glaubte Ihr Beispiel war zu tun versuchen. Meine Beurteilung von der Absicht, Ihr code möglicherweise nicht korrekt.
InformationsquelleAutor Benjamin Lindley