cin und getline
-
#include <iostream> #include <string> using namespace std; int main(){ string a; string b; cout << "geben sie 2 strings ein: " << endl; getline (cin,b); cout << "die beiden strings lauten :" << b << endl; cout << "geben sie a ein: " << endl; cin >> a; cout << "a lautet: " << a << endl; }
Diese version funktioniert wie folgt.
ich gebe a ein und gebe b ein.#include <iostream> #include <string> using namespace std; int main(){ string a; string b; cout << "geben sie a ein: " << endl; cin >> a; cout << "a lautet: " << a << endl; cout << "geben sie 2 strings ein: " << endl; getline (cin,b); cout << "die beiden strings lauten :" << b; }
Bei dieser version wartet bei getline keine eingabe ab!
warum ist das so?lg
major
-
steht wahrscheinlich noch ein \n im speicher drin
-
Hi!
Schreib mal vor getline:
cin.sync(); // Puffer leeren cin.clear(); // Eingabe-Flags löschen
Code-Hacker
-
Ist cin.sync(); dasselbe wie fflush(stdin); ?
-
Hallo,
ne, flush(stdin) ist nebenbei auch undefiniert.
Guck mal hier:
http://www.c-plusplus.net/forum/viewtopic.php?t=85526&highlight=sync