PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Eingabe mit cin <<



BeS
01-03-2003, 17:50
Hallo,
ich hab ein kleines Programm geschrieben bei dem erst ein Auswahl menü kommt, wo man dann die Menüpunkte 1, 2 und 3 auswählen kann. Die Auswahl lese ich mit cin >> auswahl ein und entscheide dann in einer switch Anweisung was passieren soll.
Beim Menüpunkt 1 soll eine Eingabemaske für verschiedene Daten kommen, was auch funktioniert. Nur die erste Eingabe wird immer übersprungen. Ich habe herausgefunden das an dieser Stelle noch die "return-taste" von der Menüauswahl wirkt.
Wenn ich vorher getchar() aufrufe, wird das return Signal dort "verbraucht" und ich kann alle Werte eingeben.
Weiß jemand woran das liegt und wie man das umgehen kann? Denn so ein getchar() ist ja nicht gerade die schönste Lösung und dazu auch noch C.

Ich hoffe das war einigermassen verständlich erklärt...

Danke!
BeS

PS: Gibt es unter C++ eine alternative zu getchar()?

anda_skoa
01-03-2003, 19:07
Du könntest die Eingabe mit getline lesen. Da wird das Newline automatisch "verbraucht"



string eingabe;
getline(cin, eingabe);
if (eingabe == "1")
{
}


Oder du kosumierst das Newline mit


cin.get();


Ciao,
_

McG.linux
02-03-2003, 11:39
oder du verwendest
cin.clear();

Gruß
mcg.linux