4.6 Statusabfrage
  • Ähnlich wie für das Formatierungen, werden die Stati, die eine Ausgabe/Eingabe auf dem Streams erzeugt in Flags abgespeichert.
  • Die Flags können über Memberfunktionen der Streamsklassen abgefragt werden.
  • Im Fehlerfall arbeiten die Klassen erst weiter, wenn das Fehlerflag gelöscht wurde.
  • Es gibt ein Flag für: ok, eof (Dateiende), failed (Ausführungfehler), bad (Datenverlust)
  • Einfacher ist die Nutzung der Abfrage-Member-Funktionen

            bool fail();
            bool eof();
            bool bad();
            bool good();

    Zusätzlich sind die Operatoren ! und () überladen. Damit funktioniert ein Code der Form:

       int wert;
       while (cin >> wert) {
            ...
       }
  • Mittels der Funktion clear() kann man die Fehlerbits zurück setzen (oder besser: das good-  Bit setzen)
  • Damit man nicht jede Operation einzeln prüfen muss, kann man Fehler auch zentral mit Hilfe von Exceptions abfangen..