Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: C++
Expertise: Beginner
Oct 18, 2000



Building the Right Environment to Support AI, Machine Learning and Deep Learning

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 set
bool eof() // returns true if eofbit is set
bool fail() // returns true of failbit or badbit is set
bool bad()  // returns true if badbit is set
bool 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().

Danny Kalev
Thanks for your registration, follow us on our social networks to keep up-to-date