在线文档教程
C++
输入/输出 | Input/output

std::basic_ios::operator bool

性病:基本[医]IOS::操作员bool

operator void*() const;(1)(until C++11)
explicit operator bool() const;(2)(since C++11)

检查流是否有错误。

1%29返回一个空指针,如果fail()回报true,否则返回一个非空指针。此指针可隐式转换为bool并且可以在布尔上下文中使用。

2%29true如果流没有错误并且准备好进行I/O操作。具体来说,返回!fail()...

这个操作符可以使用流和函数,这些流和函数将对流的引用作为循环条件返回,从而产生了惯用的C++输入循环,例如while(stream >> value) {...}或while(getline(stream, string)){...}这样的循环只在输入操作成功的情况下执行循环%27s主体。

参数

%280%29

返回值

true如果流没有错误,false否则。

二次

#include <iostream> #include <sstream> int main() { std::istringstream s("1 2 3 error" int n; std::cout << std::boolalpha << "s is " << static_cast<bool>(s) << '\n'; while (s >> n) { std::cout << n << '\n'; } std::cout << "s is " << static_cast<bool>(s) << '\n'; }

二次

产出:

二次

s is true 1 2 3 s is false

二次

另见

下表显示basic_ios访问器%28good(),,,fail()的所有可能组合的%29。ios_base::iostate旗帜:

ios_base::iostate flagsbasic_ios accessors
eofbitfailbit
falsefalse
falsefalse
falsetrue
falsetrue
truefalse
truefalse
truetrue
truetrue

© cppreference.com

在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。

http://en.cppreference.com/w/cpp/io/basic[医]IOS/操作员[医]布尔