Namespaces
Variants

std::ios_base:: iostate

From cppreference.net
typedef /*implementation defined*/ iostate ;
static constexpr iostate goodbit = 0 ;
static constexpr iostate badbit = /* implementation defined */

static constexpr iostate failbit = /* implementation defined */

static constexpr iostate eofbit = /* implementation defined */

Spezifiziert Stream-Status-Flags. Es ist ein BitmaskType , die folgenden Konstanten sind definiert:

Konstante Erklärung
goodbit kein Fehler
badbit nicht behebbarer Stream-Fehler
failbit Ein-/Ausgabeoperation fehlgeschlagen (Formatierungs- oder Extraktionsfehler)
eofbit zugehörige Eingabesequenz hat Dateiende erreicht

Inhaltsverzeichnis

Das eofbit

Das eofbit wird durch die folgenden Standardbibliotheksfunktionen gesetzt:

  • Die String-Eingabefunktion std::getline , wenn sie durch Erreichen des Stream-Endes abgeschlossen wird, anstatt den spezifizierten Terminierungszeichen zu erreichen.
  • Die numerischen Eingabe-Überladungen von basic_istream::operator>> , wenn das Stream-Ende während des Lesens des nächsten Zeichens in Phase 2 der num_get::get -Verarbeitung erreicht wird. Abhängig vom Parsing-Zustand kann failbit gleichzeitig gesetzt werden oder nicht: Beispielsweise setzt int n ; istringstream buf ( "1" ) ; buf >> n ; eofbit , aber nicht failbit : die Ganzzahl 1 wurde erfolgreich geparst und in n gespeichert. Andererseits setzt bool b ; istringstream buf ( "tr" ) ; buf >> boolalpha >> b ; sowohl eofbit als auch failbit : Es waren nicht genug Zeichen vorhanden, um das Parsing des booleschen Werts true abzuschließen.
  • Die Zeichen-Extraktions-Überladungen von operator>> std::basic_istream , wenn das Stream-Ende erreicht wird, bevor das Limit (falls vorhanden) für die Anzahl der zu extrahierenden Zeichen.
  • Der std::get_time I/O-Manipulator und beliebige der std::time_get -Parsing-Funktionen: time_get::get , time_get::get_time , time_get::get_date , etc., wenn das Stream-Ende erreicht wird, bevor das letzte Zeichen zur Verarbeitung des erwarteten Datums-/Zeitwerts geparst wurde.
  • Der std::get_money I/O-Manipulator und die money_get::get -Funktion, wenn das Stream-Ende erreicht wird, bevor das letzte Zeichen zur Verarbeitung des erwarteten Geldwerts geparst wurde.
  • Der basic_istream::sentry -Konstruktor, der zu Beginn jeder formatierten Eingabefunktion ausgeführt wird: Sofern das skipws -Bit nicht deaktiviert ist (z.B. durch Verwendung von std::noskipws ), liest und verwirft der Sentry führende Leerzeichen. Wenn während dieser Operation das Ende des Eingabestreams erreicht wird, werden sowohl eofbit als auch failbit gesetzt, und es findet keine Eingabe statt.
  • Der I/O-Manipulator std::ws , wenn er das Stream-Ende erreicht, während er Leerzeichen konsumiert (aber im Gegensatz zum formatierten Eingabe-Sentry setzt er in diesem Fall nicht failbit ).
  • Die unformatierten Eingabefunktionen basic_istream::read , basic_istream::get , basic_istream::peek , basic_istream::readsome , basic_istream::ignore , und basic_istream::getline , wenn sie das Stream-Ende erreichen.
  • Die Verwerf-Eingabefunktion basic_istream::ignore , wenn sie das Stream-Ende erreicht, bevor sie das spezifizierte Trennzeichen erreicht.
  • Die sofortige Eingabefunktion basic_istream::readsome , wenn basic_streambuf::in_avail - 1 zurückgibt.

Die folgenden Funktionen löschen eofbit als Nebeneffekt:

Beachten Sie, dass in nahezu allen Situationen, wenn eofbit gesetzt ist, auch das failbit gesetzt wird.

Der failbit

Der failbit wird durch die folgenden Standardbibliotheksfunktionen gesetzt:

Das badbit

Das badbit wird durch die folgenden Standardbibliotheksfunktionen gesetzt:

Beispiel

Siehe auch

Die folgende Tabelle zeigt die Werte der basic_ios Accessoren ( good() , fail() , etc.) für alle möglichen Kombinationen der ios_base::iostate Flags:

ios_base::iostate Flags basic_ios Zugriffsfunktionen
eofbit failbit badbit good() fail() bad() eof() operator bool operator!
false false false true false false false true false
false false true false true true false false true
falsch wahr falsch falsch wahr falsch falsch falsch wahr
falsch wahr wahr falsch wahr wahr falsch falsch wahr
wahr falsch falsch falsch falsch falsch wahr wahr falsch
wahr falsch wahr falsch wahr wahr wahr falsch wahr
wahr wahr falsch falsch wahr falsch wahr falsch wahr
wahr wahr wahr falsch wahr wahr wahr falsch wahr
gibt Statusflags zurück
(öffentliche Elementfunktion von std::basic_ios<CharT,Traits> )
setzt Statusflags
(öffentliche Elementfunktion von std::basic_ios<CharT,Traits> )
modifiziert Statusflags
(öffentliche Elementfunktion von std::basic_ios<CharT,Traits> )