GNU Info

Info Node: (iostream-295.info)States

(iostream-295.info)States


Next: Format Control Up: Ios
Enter node , (file) or (file)node

Checking the state of a stream
------------------------------

   Use this collection of methods to test for (or signal) errors and
other exceptional conditions of streams:

 - Method: ios::operator void* () const
     You can do a quick check on the state of the most recent operation
     on a stream by examining a pointer to the stream itself.  The
     pointer is arbitrary except for its truth value; it is true if no
     failures have occurred (`ios::fail' is not true).  For example,
     you might ask for input on `cin' only if all prior output
     operations succeeded:

          if (cout)
          {
            // Everything OK so far
            cin >> new_value;
            ...
          }

 - Method: ios::operator ! () const
     In case it is more convenient to check whether something has
     failed, the operator `!' returns true if `ios::fail' is true (an
     operation has failed).  For example, you might issue an error
     message if input failed:

          if (!cin)
          {
            // Oops
            cerr << "Eh?\n";
          }

 - Method: iostate ios::rdstate () const
     Return the state flags for this stream.  The value is from the
     enumeration `iostate'.  You can test for any combination of

    `goodbit'
          There are no indications of exceptional states on this stream.

    `eofbit'
          End of file.

    `failbit'
          An operation has failed on this stream; this usually
          indicates bad format of input.

    `badbit'
          The stream is unusable.

 - Method: void ios::setstate (iostate STATE)
     Set the state flag for this stream to STATE _in addition to_ any
     state flags already set.  Synonym (for upward compatibility):
     `ios::set'.

     See `ios::clear' to set the stream state without regard to existing
     state flags.  See `ios::good', `ios::eof', `ios::fail', and
     `ios::bad', to test the state.

 - Method: int ios::good () const
     Test the state flags associated with this stream; true if no error
     indicators are set.

 - Method: int ios::bad () const
     Test whether a stream is marked as unusable.  (Whether
     `ios::badbit' is set.)

 - Method: int ios::eof () const
     True if end of file was reached on this stream.  (If `ios::eofbit'
     is set.)

 - Method: int ios::fail () const
     Test for any kind of failure on this stream: _either_ some
     operation failed, _or_ the stream is marked as bad.  (If either
     `ios::failbit' or `ios::badbit' is set.)

 - Method: void ios::clear (iostate STATE)
     Set the state indication for this stream to the argument STATE.
     You may call `ios::clear' with no argument, in which case the state
     is set to `good' (no errors pending).

     See `ios::good', `ios::eof', `ios::fail', and `ios::bad', to test
     the state; see `ios::set' or `ios::setstate' for an alternative
     way of setting the state.


automatically generated by info2www version 1.2.2.9