std::ios_base::iostate
From cppreference.com
typedef /*implementation defined*/ iostate;
|
||
static constexpr iostate goodbit = 0;
|
||
static constexpr iostate badbit = /*implementation defined*/
static constexpr iostate failbit = /*implementation defined*/ |
||
Specifies stream state flags. It is a BitmaskType
, the following constants are defined:
Constant | Explanation |
goodbit | no error |
badbit | irrecoverable stream error |
failbit | input/output operation failed (formatting or extraction error) |
eofbit | associated input sequence has reached end-of-file |
Contents |
[edit] The eofbit
The eofbit is set by the following standard library functions:
- The string input function std::getline if it completes by reaching the end of the stream, as opposed to reaching the specified terminating character.
- The numeric input overloads of basic_istream::operator>> if the end of the stream was encountered while reading the next character, on Stage 2 of num_get::get processing. Depending on the parsing state,
failbit
may or may not be set at the same time: for example, int n; istringstream buf("1"); buf >> n; setseofbit
, but notfailbit
: the integer 1 was successfully parsed and stored inn
. On the other hand, bool b; istringstream buf("tr"); buf >> boolalpha >> b; sets botheofbit
andfailbit
: there was not enough characters to complete the parsing of the boolean true. - The character extraction overloads of operator>>std::basic_istream, if the end of the stream is reached before the limit (if any) on the number of characters to be extracted.
- The std::get_time I/O manipulator and any of the std::time_get parsing functions: time_get::get, time_get::get_time, time_get::get_date, etc., if the end of the stream is reached before the last character needed to parse the expected date/time value was processed.
- The std::get_money I/O manipulator and money_get::get function, if the end of the stream is reached before the last character needed to parse the expected monetary value was processed.
- The basic_istream::sentry constructor, executed at the beginning of every formatted input function: unless the
skipws
bit is unset (e.g. by issuing std::noskipws), sentry reads and discards the leading whitespace characters. If the end of the input stream is reached during this operation, botheofbit
andfailbit
are set, and no input takes place. - The I/O manipulator std::ws, if it reaches the end of the stream while consuming whitespace (but, unlike the formatted input sentry, it does not set
failbit
in this case) - The unformatted input functions basic_istream::read, basic_istream::get, and basic_istream::getline, when reaching the end of the stream.
- The discard input function basic_istream::ignore, when reaching the end of the stream before reaching the specified delimiter character.
- The immediate input function basic_istream::readsome, if basic_streambuf::in_avail returns -1
The following functions clear eofbit
as a side-effect:
[edit] The failbit
The failbit is set by the following standard library functions:
This section is incomplete |
[edit] The badbit
The badbit is set by the following standard library functions:
- basic_ostream::put if it fails to insert a character into the output stream, for any reason.
- basic_ostream::write if it fails to insert a character into the output stream, for any reason.
- Formatted output functions operator<<, std::put_money, and std::put_time, if they encounter the end of the output stream before completing output.
- basic_ios::init when called to initialize a stream with a null pointer for
rdbuf()
- basic_istream::putback and basic_istream::unget when called on a stream with a null
rdbuf()
- basic_istream::operator>>(basic_streambuf*) when a null pointer is passed as the argument.
- basic_istream::putback and basic_istream::unget if
rdbuf()->sputbackc() or rdbuf()->sungetc() return traits::eof().
- basic_istream::sync, basic_ostream::flush, and every output function on a
unitbuf
output stream, if rdbuf()->pubsync() returns -1 - Every stream I/O function if an exception is thrown by any member function of the associated stream buffer (e.g. sbumpc(), xsputn(), sgetc(), overflow(), etc)
- ios_base::iword and ios_base::pword on failure (e.g. failure to allocate memory)
[edit] Example
This section is incomplete Reason: no example |
[edit] See also
ios_base::iostate flags | basic_ios accessors | |||||||
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 |