It is used to check whether badbit is set. This flag is set by operations performed on the stream when an error occurs while read or writing data, generally causing the loss of integrity of the stream.
Notice that this function is not the exact opposite of good, which checks whether none of the error flags (eofbit, failbit and badbit) are set, and not only badbit −
|iostate value(member constants)||indicates||functions to check state flags|
|goodbit||No errors (zero value iostate)||
|eofbit||End-of-File reached on input operation||
|failbit||Logical error on i/o operation||
|badbit||Read/writing error on i/o operation||
Following is the declaration for ios::bad function.
bool bad() const;
True if the stream's badbit error state flag is set or else false.
Strong guarantee − if an exception is thrown, there are no changes in the stream.
Accesses the stream object.
Concurrent access to the same stream object may cause data races.