Namensräume
Varianten
Aktionen

std::ios_base::iostate

Von cppreference.com
< cpp‎ | io‎ | ios base
 
 
 
 
typedef /*implementationsdefiniert*/ iostate;
static constexpr iostate goodbit = 0;
static constexpr iostate badbit  = /* implementationsdefiniert */

static constexpr iostate failbit = /* implementationsdefiniert */

static constexpr iostate eofbit  = /* implementationsdefiniert */

Definiert Zustandsflags für Streams. Es ist ein BitmaskType, die folgenden Konstanten sind definiert

Konstante Erklärung
goodbit kein Fehler
badbit irreparabler Stream-Fehler
failbit Ein-/Ausgabeoperation fehlgeschlagen (Formatierungs- oder Extraktionsfehler)
eofbit Die zugeordnete Eingabesequenz hat das Ende der Datei erreicht

Inhalt

[bearbeiten] The eofbit

Die eofbit wird durch die folgenden Standardbibliotheksfunktionen gesetzt

  • Die Zeichenketten-Eingabefunktion std::getline, wenn sie durch Erreichen des Streamendes abgeschlossen wird, im Gegensatz zum Erreichen des angegebenen abschließenden Zeichens.
  • Die numerischen Eingabe-Überladungen von basic_istream::operator>>, wenn das Streamende beim Lesen des nächsten Zeichens erreicht wurde, in Stufe 2 der num_get::get-Verarbeitung. Abhängig vom Parsing-Zustand kann `failbit` gleichzeitig gesetzt werden oder auch nicht: Zum Beispiel setzt int n; istringstream buf("1"); buf >> n; `eofbit`, aber nicht `failbit`: Die Ganzzahl 1 wurde erfolgreich geparst und in `n` gespeichert. Auf der anderen Seite setzt bool b; istringstream buf("tr"); buf >> boolalpha >> b; sowohl `eofbit` als auch `failbit`: Es gab nicht genügend Zeichen, um das Parsen des booleschen Wertes true abzuschließen.
  • Die Zeichenextraktions-Überladungen von operator>>std::basic_istream, wenn das Streamende erreicht wird, bevor das (falls vorhanden) Limit für die Anzahl der zu extrahierenden Zeichen erreicht ist.
  • Der I/O-Manipulator std::get_time und alle std::time_get Parsing-Funktionen: time_get::get, time_get::get_time, time_get::get_date, etc., wenn das Streamende erreicht wird, bevor das letzte Zeichen für die Verarbeitung des erwarteten Datums-/Zeitwertes verarbeitet wurde.
  • Der I/O-Manipulator std::get_money und die Funktion money_get::get, wenn das Streamende erreicht wird, bevor das letzte Zeichen für die Verarbeitung des erwarteten Geldbetrags verarbeitet wurde.
  • Der Konstruktor von basic_istream::sentry, der zu Beginn jeder formatierten Eingabefunktion ausgeführt wird: Wenn das `skipws`-Flag nicht unset ist (z.B. durch Ausgabe von std::noskipws), liest und verwirft `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 Streamende beim Verbrauchen von Leerzeichen erreicht (aber im Gegensatz zum formatierten Eingabe-Sentry wird in diesem Fall `failbit` nicht gesetzt).
  • 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 Streamende erreichen.
  • Die Discard-Eingabefunktion basic_istream::ignore, wenn das Streamende erreicht wird, bevor das angegebene Trennzeichen erreicht wird.
  • 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 fast allen Situationen, wenn `eofbit` gesetzt ist, auch `failbit` gesetzt ist.

[bearbeiten] The failbit

Die failbit wird durch die folgenden Standardbibliotheksfunktionen gesetzt

[bearbeiten] The badbit

Die badbit wird durch die folgenden Standardbibliotheksfunktionen gesetzt

[bearbeiten] Example

[bearbeiten] See also

Die folgende Tabelle zeigt die Werte der basic_ios-Zugriffsfunktionen (good(), fail(), etc.) für alle möglichen Kombinationen von 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
false true false false true false false false true
false true true false true true false false true
true false false false false false true true false
true false true false true true true false true
true true false false true false true false true
true true true false true true true false true
gibt Zustandsflags zurück
(public member function of std::basic_ios<CharT,Traits>) [bearbeiten]
setzt Zustandsflags
(public member function of std::basic_ios<CharT,Traits>) [bearbeiten]
modifiziert Zustandsflags
(public member function of std::basic_ios<CharT,Traits>) [bearbeiten]