Streamzustände: Zustand-Flags, Einführung (1/2)

Bisher war schon des öfteren von dem Zustand eines Streams die Rede. Um diesen neuen Begriff zu rechtfertigen, muß es mehr als nur einen Zustand geben. Es bleiben mehrere Fragen offen: Letztere Frage ist relativ leicht zu beantworten: Für den prinzipiellen Zustand eines Streams werden in der (Basis-)Klasse ios eine Reihe von Flags gesetzt, sogenannte Zustandsflags.
Zu diesem Zweck sind verschiedene Bitkonstanten als Flag definiert, die in einer internen Stream-Komponente verwaltet werden.

Flag  Bedeutung 
ios::goodbit  alles in Ordnung 
ios::eofbit  End-Of-File (Ende der Datei) 
ios::failbit  Fehler: letzter Vorgang nicht korrekt abgeschlossen 
ios::badbit  fataler Fehler: Zustand nicht definiert 
ios::hardfail  Hardware-Fehler 
(Man beachte: das Flag ios::hardfail ist nicht in allen Implementierungen enthalten; falls es nicht vorhanden ist, ist die Funktionalität in ios::badbit integriert; die Unterscheidung badbit/hardfail entfällt in diesem Fall.)