Hi,
danke. Ganz steige ich noch nicht durch,
cin ist komplexer als ich dachte.
Code:
do
{
while (! (cin >> eingabe))
{
cin.clear(); // das löscht die Fehler-Flags (welche auch immer das sind)
while (cin.get() != '\n'); // das liest die Zeichen im Puffer so lange ein (und entfernt sie daraus),
// bis ein "\n" (Return) kommt
cout << "\n\t --> Fehleingabe!\n";
}
}
while (! ((eingabe == 1) || (eingabe == 2) || (eingabe == 3) || (eingabe == 4)));
Was die diese Zeile
Code:
while (! (cin >> eingabe))
genau macht, konnte ich nicht herausfinden. Ich weiß auch nicht, wie der <<-Operator heißt, daher kann ich auch nicht gezielt suchen.
Das Problem bei dem Code ist jedoch noch, dass bei Eingabe von Buchstaben die Meldung "Fehleingabe" ausgegeben wird, wenn ich jedoch ganze Zahlen eingebe, sehe ich keine Meldung, muss aber weitere Zahlen eingeben, bis sie 1, 2, 3 oder 4 ist. Ich denke, für diesen Fall brauche ich dann doch die boolsche Variable
ersterDurchlaf.
Daher vermute ich, dass der boolsche Ausdruck der genannten Zeile wahr ist, wenn die Zuweisung des Eingabewerts zur Variablen
eingabe erfolgreich war, es sich also um den selben Datentyp handelt.
Ist das richtig?
Grüße