Lesen Sie leere Zeilen C++
Ich habe Probleme beim Lesen und differenzieren, leere Zeilen aus einer Eingabe.
Hier ist das Beispiel für die Eingabe:
number
string
string
string
...
number
string
string
...
Jede Zahl steht für den Beginn einer Eingabe und die leere Zeile nach der Sequenz von Zeichenfolgen für das Ende der Eingabe ist. Die Zeichenfolge kann ein Satz, nicht nur ein Wort.
Mein code macht Folgendes:
int n;
while(cin >> n) { //number
string s, blank;
getline(cin, blank); //reads the blank line
while (getline(cin, s) && s.length() > 0) { //I've tried !s.empty()
//do stuff
}
}
Habe ich versucht, direkt cin >> blank, aber es hat nicht funktioniert.
Kann mir jemand helfen, dieses Problem zu lösen?
Dank!
- Sie haben könnte, Lesen Sie die Sequenz aus nur
cin
Recht? Denn es ignoriert alle Leerzeichen. So gibt es keine Notwendigkeit zu Lesen-Rohlinge.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nachdem Sie gelesen haben, die Nummer mit der Zeile:
cin
Lesen nicht alles, was nach der letzten Ziffer. Das bedeutet, dass cin-Eingabepuffer enthält noch den rest der Zeile, die der Reihe war. So, Sie brauchen, um zu überspringen, die Zeile und die nächste leere Zeile. Sie könnten das tun, indem Sie einfach mit getline zweimal. also