Ich verstehe folgende Anweisung im folgenden Code nicht 100 %.
C++:
void readInt(int & result) { bool fail = false; do { cin >> result; if (!cin) ------>Laut Beschreibung wird hier geklärt ob der { Stream im Zustand ungültig ist(d.h. ob das fail = true(); fail flag gesetzt ist) cin.clear(); cin.get(); } else { fail = false; }
}while (fail)
}
Gruss Chris
--edit: cpp-tags eingefügt. Machs in Zukunft selbst.Dieser Post wurde am 27.07.2003 um 17:03 Uhr von 0xdeadbeef editiert.
--> Wow, ich hätte nie gedacht, dass ich mal einen Thread in das ANSI-C/C++-Forum verschieben würde... -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra
Der !-Operator der Template-Klasse istream ist überladen. Aus der Implementierung der basic_ios-template (von der istream abgeleitet ist) im g++-Tree:
C++:
booloperator!() const { return this->fail(); }
Das bedeutet, Die Ausdrücke !cin und cin.fail() machen das gleiche. -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe DijkstraDieser Post wurde am 27.07.2003 um 17:09 Uhr von 0xdeadbeef editiert.