[Gelöst] Warum führt eine Leerzeile bei cin zu fail()?
-
Diese Schleife:
while(cin.good()) { cin.get(lin,BUFSIZE,'\n'); // Zeilenendezeichen retten cin.get(c); ... }bricht ab, wenn eine Zeile auftaucht, die nur aus einem '\n' besteht.
Wie kann ich das verhindern?
-
Soweit ich weiß, interpretieren (manche) Unix' eine leere Zeile as EOF. Mehr kann ich dazu auch nicht sagen.
-
Miq schrieb:
Diese Schleife:
while(cin.good()) { cin.get(lin,BUFSIZE,'\n'); // Zeilenendezeichen retten cin.get(c); ... }bricht ab, wenn eine Zeile auftaucht, die nur aus einem '\n' besteht.
Wie kann ich das verhindern?
cin.clear()
Aber warum nimmst du nicht einfach getline?
#include <iostream> using namespace std; int main() { const int BUFSIZE = 1024; char lin[BUFSIZE], c; while(cin.good()) { cin.getline(lin, BUFSIZE); std::cout << lin << std::endl; } }mfg.
-
joomoo schrieb:
Aber warum nimmst du nicht einfach getline?
mfg.Aua...
Wie banal, und es funktioniert auch! Danke für den Anstoß! 
-
Besser std::getline aus für std::string nehmen, da muss man keine Begrenzung angeben...