table of contents
        
      
      
    | std::ios_base::iostate(3) | C++ Standard Libary | std::ios_base::iostate(3) | 
NAME¶
std::ios_base::iostate - std::ios_base::iostate
Synopsis¶
 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 */
  
   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
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;
  
   sets eofbit, but not failbit: the integer 1 was successfully parsed and
    stored
  
   in n. On the other hand, bool b; istringstream buf("tr"); buf
    >> boolalpha >> b;
  
   sets both eofbit and failbit: 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, both eofbit and
  
   failbit 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,
  
   basic_istream::peek, basic_istream::readsome, basic_istream::ignore, 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:
  
   * basic_istream::putback
  
   * basic_istream::unget
  
   * basic_istream::seekg
  
   Note that in nearly all situations, if eofbit is set, the failbit is set as
    well.
The failbit¶
The failbit is set by the following standard library functions:
  
   * The basic_istream::sentry constructor, executed at the beginning of every
    input
  
   function, if either eofbit or badbit is already set on the stream, or if the
    end
  
   of stream is encountered while consuming leading whitespace.
  
   * The basic_ostream::sentry constructor, executed at the beginning of every
    output
  
   function, under implementation-defined conditions.
  
   * operator>>(std::basic_string<>) if the function extracts no
    characters from the
  
   input stream.
  
   * operator>>(std::complex<>) if the function fails to extract a
    valid complex
  
   number.
  
   * The character array and single character overloads of operator>> if
    they fail to
  
   extract any characters.
  
   * The streambuf overload of basic_istream::operator>> if the streambuf
    argument is
  
   a null pointer or if no characters were inserted into the streambuf.
  
   * The streambuf overload of basic_ostream::operator<< if the function
    inserts no
  
   characters.
  
   * operator>>(std::bitset<>) if the function extracts no
    characters from the input
  
   stream.
  
   * std::getline if the function extracts no characters or if it manages to
    extract
  
   basic_string::max_size characters from the input stream.
  
   * The numeric, pointer, and boolean input overloads of
    basic_istream::operator>>
  
   (technically, the overloads of num_get::get they call), if the input cannot
    be
  
   parsed as a valid value or if the value parsed does not fit in the
    destination
  
   type.
  
   * The time input manipulator std::get_time (technically, time_get::get it
    calls),
  
   if the input cannot be unambiguously parsed as a time value according to the
  
   given format string.
  
   * The currency input manipulator std::get_money (technically, money_get::get
    it
  
   calls), if the input cannot be unambiguously parsed as a monetary value
  
   according to the locale rules.
  
   * The extraction operators of all RandomNumberEngines, if bad input is
  
   encountered.
  
   * The extraction operators of all RandomNumberDistributions, if bad input is
  
   encountered.
  
   * The unformatted input functions basic_istream::get if they fails to extract
    any
  
   characters.
  
   * basic_istream::getline, if it extracts no characters, if it fills in the
  
   provided buffer without encountering the delimiter, or if the provided buffer
  
   size is less than 1.
  
   * basic_istream::read, if the end-of-file condition occurs on the input
    stream
  
   before all requested characters could be extracted.
  
   * basic_istream::seekg on failure
  
   * basic_ostream::tellp on failure
  
   * The constructors of std::basic_fstream, std::basic_ifstream, and
  
   std::basic_ofstream that takes a filename argument, if the file cannot be
  
   opened.
  
   * basic_fstream::open, basic_ifstream::open, and basic_ofstream::open if the
    file
  
   cannot be opened.
  
   * basic_fstream::close, basic_ifstream::close, and basic_ofstream::close if
    the
  
   file cannot be closed.
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_ostream::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).
Example¶
 This section is incomplete
  
   Reason: no example
See also¶
 The following table shows the value of basic_ios accessors
    (good(), fail(), etc.)
  
   for all possible combinations of ios_base::iostate flags:
  
   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
  
   rdstate returns state flags
  
   (public member function of std::basic_ios<CharT,Traits>)
  
   setstate sets state flags
  
   (public member function of std::basic_ios<CharT,Traits>)
  
   clear modifies state flags
  
   (public member function of std::basic_ios<CharT,Traits>)
Category:¶
* Todo no example
| 2024.06.10 | http://cppreference.com |