std::ios_base:: iostate
|
typedef
/*implementation defined*/
iostate
;
|
||
|
static
constexpr
iostate goodbit
=
0
;
|
||
|
static
constexpr
iostate badbit
=
/* implementation defined */
static
constexpr
iostate failbit
=
/* 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
failbitgleichzeitig gesetzt werden oder nicht: Beispielsweise setzt int n ; istringstream buf ( "1" ) ; buf >> n ;eofbit, aber nichtfailbit: die Ganzzahl 1 wurde erfolgreich geparst und inngespeichert. Andererseits setzt bool b ; istringstream buf ( "tr" ) ; buf >> boolalpha >> b ; sowohleofbitals auchfailbit: 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 sowohleofbitals auchfailbitgesetzt, 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:
-
Der
basic_istream::sentry
-Konstruktor, ausgeführt am Beginn jeder Eingabefunktion, falls entweder
eofbitoderbadbitbereits im Stream gesetzt ist oder wenn das Streamende beim Konsumieren führender Leerzeichen erreicht wird. - Der basic_ostream::sentry -Konstruktor, ausgeführt am Beginn jeder Ausgabefunktion unter implementierungsdefinierten Bedingungen.
- operator>> (std::basic_string<>) falls die Funktion keine Zeichen aus dem Eingabestream extrahiert.
- operator>> (std::complex<>) falls die Funktion keine gültige komplexe Zahl extrahieren kann.
- Die Zeichenarray- und Einzelzeichen-Überladungen von operator>> falls sie keine Zeichen extrahieren können.
- Die Streambuf-Überladung von basic_istream::operator>> falls das Streambuf-Argument ein null-Zeiger ist oder wenn keine Zeichen in den Streambuf eingefügt wurden.
- Die Streambuf-Überladung von basic_ostream::operator<< falls die Funktion keine Zeichen einfügt.
- operator>> (std::bitset<>) falls die Funktion keine Zeichen aus dem Eingabestream extrahiert.
- std::getline falls die Funktion keine Zeichen extrahiert oder wenn sie basic_string::max_size Zeichen aus dem Eingabestream extrahiert.
- Die numerischen, Zeiger- und booleschen Eingabe-Überladungen von basic_istream::operator>> (technisch gesehen die Überladungen von num_get::get die sie aufrufen), falls die Eingabe nicht als gültiger Wert geparst werden kann oder wenn der geparste Wert nicht in den Zieltyp passt.
- Der Zeit-Eingabe-Manipulator std::get_time (technisch gesehen time_get::get das er aufruft), falls die Eingabe nicht eindeutig als Zeitwert gemäß dem gegebenen Formatstring geparst werden kann.
- Der Währungs-Eingabe-Manipulator std::get_money (technisch gesehen money_get::get das er aufruft), falls die Eingabe nicht eindeutig als monetärer Wert gemäß den Lokalisierungsregeln geparst werden kann.
- Die Extraktionsoperatoren aller RandomNumberEngine s , falls ungültige Eingabe auftritt.
- Die Extraktionsoperatoren aller RandomNumberDistribution s , falls ungültige Eingabe auftritt.
- Die unformatierten Eingabefunktionen basic_istream::get falls sie keine Zeichen extrahieren können.
- basic_istream::getline , falls sie keine Zeichen extrahiert, falls sie den bereitgestellten Puffer füllt ohne auf das Trennzeichen zu stoßen, oder wenn die bereitgestellte Puffergröße kleiner als 1 ist.
- basic_istream::read , falls die Dateiende-Bedingung im Eingabestream auftritt bevor alle angeforderten Zeichen extrahiert werden konnten.
- basic_istream::seekg bei Misserfolg
- basic_ostream::tellp bei Misserfolg
- Die Konstruktoren von std::basic_fstream , std::basic_ifstream , und std::basic_ofstream die einen Dateinamen-Argument nehmen, falls die Datei nicht geöffnet werden kann.
- basic_fstream::open , basic_ifstream::open , und basic_ofstream::open falls die Datei nicht geöffnet werden kann.
- basic_fstream::close , basic_ifstream::close , und basic_ofstream::close falls die Datei nicht geschlossen werden kann.
Das badbit
Das badbit wird durch die folgenden Standardbibliotheksfunktionen gesetzt:
- basic_ostream::put falls es aus irgendeinem Grund fehlschlägt, ein Zeichen in den Ausgabestream einzufügen.
- basic_ostream::write falls es aus irgendeinem Grund fehlschlägt, ein Zeichen in den Ausgabestream einzufügen.
- Formatierte Ausgabefunktionen operator<< , std::put_money und std::put_time , wenn sie das Ende des Ausgabestreams erreichen, bevor die Ausgabe abgeschlossen ist.
-
basic_ios::init
wenn es aufgerufen wird, um einen Stream mit einem Nullzeiger für
rdbuf()zu initialisieren. -
basic_istream::putback
und
basic_istream::unget
wenn sie auf einem Stream mit einem Null-
rdbuf()aufgerufen werden. - basic_ostream::operator<< (basic_streambuf*) wenn ein Nullzeiger als Argument übergeben wird.
- basic_istream::putback und basic_istream::unget falls rdbuf ( ) - > sputbackc ( ) oder rdbuf ( ) - > sungetc ( ) traits :: eof ( ) zurückgeben.
-
basic_istream::sync
,
basic_ostream::flush
und jede Ausgabefunktion auf einem
unitbufAusgabestream, falls rdbuf ( ) - > pubsync ( ) - 1 zurückgibt. -
Jede Stream-I/O-Funktion, wenn eine Ausnahme durch eine Memberfunktion des zugehörigen Streampuffers ausgelöst wird (z.B.
sbumpc(),xsputn(),sgetc(),overflow(), etc). - ios_base::iword und ios_base::pword bei Fehlschlag (z.B. Speicherallokationsfehler).
Beispiel
|
Dieser Abschnitt ist unvollständig
Grund: Kein 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>
)
|