cin in Schleife
-
#include <iostream> #include <string> using namespace std; int main() { while(1) { string line1; cout << "zeile eins eingeben: "; getline(cin, line1); string line2; cout << "zeile zwei eingeben: "; getline(cin, line2); cout << "zahl eingeben: "; int zahl; cin >> zahl; } system("pause"); return 0; }Hallo
Habe zum Testen dieses Programm geschrieben.
Warum kommt bei der Wiederholung der Schleife beide STRING Eingabeaufforderungen nebeneinander ? Was ist hier faul ?Gruss
Manuzeile eins eingeben: blabla
zeile zwei eingeben: blabla
zahl eingeben: 55
zeile eins eingeben: zeile zwei eingeben:
-
nach
cin >> zahlliegt im eingabepuffer noch ein newline, und da getline einfach nur zeilen bis zum nächsten newline liest, hat es eine leere zeile bereits gelesen.
füg am ende folgendes snipplet ein:
cin.clear(); cin.ignore(numeric_limits<streamsize>::max(),'\n');clear löscht etwaige gesetzte failbits, wenn z.b. keine zahl eingegeben wurde und ignore ignoriert alle folgenden zeichen bis inklusive das '\n'.
-
danke für die schnelle Antwort....
funktioniert.....Gruss Manu...