Einzelnen Beitrag anzeigen

Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#1

[C++] "cin" wird übersprungen

  Alt 8. Nov 2007, 21:44
Hallo,

ich versuche auf eine ganz primitive Art eine Eingabe auf einen gültigen Wert zu überprüfen. Die Variable "eingabe" ist vom Typ "unsigned int".

Das ist mein Code:

Code:
do
{
   if (! ersterDurchlauf)
   {
      cout << "\n\t --> Fehleingabe!\n";
      cout << "\t    Geben Sie eine ganze Zahl zwischen 1 und 4 ein.\n";
   }
   ersterDurchlauf = false;
   cin >> eingabe;
}
while (! ((eingabe == 1) || (eingabe == 2) || (eingabe == 3) || (eingabe == 4)));
Solange ich Zahlen eingebe, geht das einwandfrei und ich werde jedesmal aufgefordert, eine neue Eingabe zu tätigen. Gebe ich jedoch einen Buchstaben ein, dann lande ich in einer Endlosschleife, die mir ständig den Text "Fehleingabe ..." ausgibt.

Der Wert von "eingabe" ist beispielsweise bei eingegebenem Buchstaben "m" immer 3435973836;

Was mache ich falsch? Liegt's an "unsigned int"?

Grüße
  Mit Zitat antworten Zitat