cin.getline wird ignoriert

multimolti

Erfahrenes Mitglied
Hallo!

Ich verzweifle hier schon, weil ich bloedes C++ benutzen muss, aber naja... jetzt grade will wieder mal der Input nicht. Ich muss Text von der Konsole lesen, mit Leerzeichen, daher benutze ich cin.getline() anstatt cin >> variable.

Aber mein erstes getline wird einfach ignoriert:

Code:
			cout << "Add new contact: " << "\r\n";
			cout << "Name: ";
			cin.getline(name, 30, '\n');
			cout << "Telephone Number: ";
			cin.getline(number, 8, '\n');
			cout << "Email Address: ";
Wenn ich das starte sagt meine Konsole gleich:
Add new contact:
Name: Telephone Number:
und nach Telephone Number blinkt dann mein Cursor.. warum?
 
Weil du wohl noch was im Stream hast ;)

C++:
std::istream& flush(std::istream& in)
{ return (in.ignore(std::numeric_limits<std::streamsize>::max(), '\n')).clear(); }

Dann muss du nur noch gucken ob das leeren notwendig ist ... wie das geht ... findest du bei google.de ... ich schrieb dir nicht alles :D
C++:
std::cout << "Add new contact: " << "\n";
              << "- Name: ";
flush(std::cin).getline(name, 30, '\n');
std::cout << "- Telephone number: ";
std::cin.getline(number, 8, '\n');
std::cout << "Email Address: ";
...
 
Zurück