它用于检查流的状态是否良好。
声明
下面是ios::good()
函数的声明。
bool good() const;
返回值
- 返回
true
,如果没有设置流的状态标志。 - 返回
false
,如果设置了流的状态标志(badbit
,eofbit
或failbit
)。
示例
下面的例子解释了ios::good()的使用。
#include <iostream>
#include <sstream>
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()=0 eof()=0 fail()=1 bad()=1