(!cin) wann "true"??

Du bist neu in der Welt von C++? Dann schau hier herein!
Antworten
Boris_partys
Beiträge: 14
Registriert: 20. Februar 2012 06:22

(!cin) wann "true"??

Beitrag 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
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

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

Beitrag 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
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Boris_partys
Beiträge: 14
Registriert: 20. Februar 2012 06:22

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

Beitrag von Boris_partys »

Danke Christian
Antworten