bool good() const;
true if none of the stream's error state flags (eofbit, failbit and badbit) is set.1
2
3
bool basic_ios::good() const {
return rdstate() == goodbit;
}
| iostate value (member constants) | indicates | functions to check state flags | ||||
|---|---|---|---|---|---|---|
| good() | eof() | fail() | bad() | rdstate() | ||
| goodbit | No errors (zero value iostate ) | true | false | false | false | goodbit |
| eofbit | End-of-File reached on input operation | false | true | false | false | eofbit |
| failbit | Logical error on i/o operation | false | false | true | false | failbit |
| badbit | Read/writing error on i/o operation | false | false | true | true | badbit |
true if none of the stream's state flags are set.false if any of the stream's state flags are set (badbit, eofbit or failbit).1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// error state flags
#include <iostream> // std::cout, std::ios
#include <sstream> // std::stringstream
void print_state (const std::ios& stream) {
std::cout << " good()=" << stream.good();
std::cout << " eof()=" << stream.eof();
std::cout << " fail()=" << stream.fail();
std::cout << " bad()=" << stream.bad();
}
int main () {
std::stringstream stream;
stream.clear (stream.goodbit);
std::cout << "goodbit:"; print_state(stream); std::cout << '\n';
stream.clear (stream.eofbit);
std::cout << " eofbit:"; print_state(stream); std::cout << '\n';
stream.clear (stream.failbit);
std::cout << "failbit:"; print_state(stream); std::cout << '\n';
stream.clear (stream.badbit);
std::cout << " badbit:"; print_state(stream); std::cout << '\n';
return 0;
}
goodbit: good()=1 eof()=0 fail()=0 bad()=0 eofbit: good()=0 eof()=1 fail()=0 bad()=0 failbit: good()=0 eof()=0 fail()=1 bad()=0 badbit: good()=1 eof()=0 fail()=1 bad()=1