Checking the State of a Stream

The iostream family of classes provides the following member functions and operators for checking the stream’s state:

 bool good() // returns true if no error flag is setbool eof() // returns true if eofbit is setbool fail() // returns true of failbit or badbit is setbool bad()  // returns true if badbit is setbool operator!() // as fail()operator void*() // returns null if fail() is true

In other words, good() takes all flags into account, including the eofbit, whereas fail(), operator!() and operator void*() ignore eofbit. Thus, if you wish to check whether the stream is in a state of error, use fail(), operator!() or operator void*(). On the other hand, to check a failure of input operations, call the member function good().

Share the Post:
Share on facebook
Share on twitter
Share on linkedin


Recent Articles: