Seite 1 von 1

(!cin) wann "true"??

Verfasst: 7. April 2012 12:37
von Boris_partys
Hallo zusammen...

Kann mir jemand in seinen Worten, diesen Codeabschnitt erklären?

Code: Alles auswählen

char ch;
while (cin>>ch && !isdigit(ch));
if (!cin)error("keine Eingabe");
cin.unget();
while (cin>>ch && !isdigit(ch)); // kann ich noch nachvollziehen. Endlosschleife, bis eine gültige Ziffer eingegeben wurde.

Aber wann wird in der darauffolgenden if Bedingung (!cin) "true"??
Muss ich nur lang genug warten? Funktioniert nicht. Einfach nur die Eingabetaste als !cin ?? Funktioniert nicht.

Und was bedeutet cin.unget();??

Vielen Dank im Voraus

Re: (!cin) wann "true"??

Verfasst: 10. April 2012 18:19
von Christian81
Hiers gibts die Erklärung: http://www.cplusplus.com/reference/iost ... eratornot/
z.B. wenn STRG+C gedrückt wurde würde ich sagen.
Und ungetc() wird hier auch gut erklärt: http://www.cplusplus.com/reference/iost ... eam/unget/ - in deinem Codeschnipsel ist es also nicht wirklich nötig

Re: (!cin) wann "true"??

Verfasst: 14. April 2012 09:18
von Boris_partys
Danke Christian