它用于检查流的状态是否良好。
声明
下面是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 << &apos/n&apos
stream.clear (stream.eofbit)
std::cout << " eofbit:" print_state(stream) std::cout << &apos/n&apos
stream.clear (stream.failbit)
std::cout << "failbit:" print_state(stream) std::cout << &apos/n&apos
stream.clear (stream.badbit)
std::cout << " badbit:" print_state(stream) std::cout << &apos/n&apos
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