Moin zusammen,
ich schreibe gerade an einem kleinen Programm, dass eine unbekannte Anzahl von Strings einliest, diese in einen Vektor schreibt und nach Abschluss von allem den Inhalt des Vektors ausgibt.
Wie man sieht keine große Geschichte. Das Problem liegt nun offenbar darin, dass cin>>word niemals den Wert false anzunehmen scheint und ich daher aus der Schleife nicht herauskomme.
Ich habe im Internet diverse Seiten gefunden, aber keine gute Lösung gesehen.
Was mich auch überrascht ist, dass auf einigen Seiten genau dieses Einlesen in den String beschrieben wird, ebenfalls in einer Schleife und es dort offenbar funktioniert.
Was allerdings funktioniert, ist, wenn ich in der Schleife word ausgeben würde, also cout<<word<<endl; einfügen würde. Dann wird die schleife beendet.
Soweit ich weiß wird hier der Eingabepuffer geleert. Meine Frage nun: Wie mache ich das manuell? Also ohne die Hilfe von cout?
Habe auch danach gesucht, aber keine Lösung gefunden.
Vielen Dank und ein gutes neues Jahr,
badday
ich schreibe gerade an einem kleinen Programm, dass eine unbekannte Anzahl von Strings einliest, diese in einen Vektor schreibt und nach Abschluss von allem den Inhalt des Vektors ausgibt.
Code:
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main()
{
vector<string> svec;
string word="";
while(cin>>word)
{
svec.push_back(word);
}
for(vector<string>::iterator iter=svec.begin(); iter!=svec.end(); iter++)
{
cout<<*iter<<endl;
}
return 0;
}
Wie man sieht keine große Geschichte. Das Problem liegt nun offenbar darin, dass cin>>word niemals den Wert false anzunehmen scheint und ich daher aus der Schleife nicht herauskomme.
Ich habe im Internet diverse Seiten gefunden, aber keine gute Lösung gesehen.
Was mich auch überrascht ist, dass auf einigen Seiten genau dieses Einlesen in den String beschrieben wird, ebenfalls in einer Schleife und es dort offenbar funktioniert.
Was allerdings funktioniert, ist, wenn ich in der Schleife word ausgeben würde, also cout<<word<<endl; einfügen würde. Dann wird die schleife beendet.
Soweit ich weiß wird hier der Eingabepuffer geleert. Meine Frage nun: Wie mache ich das manuell? Also ohne die Hilfe von cout?
Habe auch danach gesucht, aber keine Lösung gefunden.
Vielen Dank und ein gutes neues Jahr,
badday