Problem mit cin
-
hallo,
ich möchte mehrere wörter nacheinander aus der standardeingabe einlesen.
dazu hab ich aus einem buch:string bla; while(cin>>bla) { //... }
allerdings hört der while schleife nicht wie gewünscht bei einem enter auf...
wo ist der Fehler?thx 4 help
-
bei mir MUSS ich bei einem cin etwas eingeben. in deinem fall wird es wahrscheinlich auch so sein. cin.get() macht das zum beispiel nicht, würde aber das leerzeichen ignorieren.
mfg
-
ich habe ja was eingegeben und danach enter gedrückt, nur geht er nach dem enter nich aus der schleife raus...
bye
-
Wenn du alle Wörter einer Zeile im gleichen string speichern willst kannst du doch einfach cin.getline verwenden.
edit: also ohne irgend eine Schleife
-
ich wollte aber die wörter dann einzeln mit einem anderen vergleichen, was ja mit getline umständlicher wäre.
bye
-
Wie wärs hiermit:
#include <sstream> #include <iostream> using namespace std; const int MAX = 256; int main() { char eingabe[MAX]; cin.getline(eingabe, MAX); stringstream komplett; komplett << eingabe; string wort; while(getline (komplett, wort, ' ')) cout << wort << endl; }
-
ok danke!
-
allerdings hab ich da eben den nachteil, das die länge des char-arrays fixiert ist
mit nem string wärd ja natürlich schöner...
bye
-
string str; getline(cin, str);
Geht auch und ist natürlich schöner.