std::basic_ios::operator 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 flags | basic_ios accessors | |||||||
|---|---|---|---|---|---|---|---|---|
eofbit | failbit | badbit | good() | fail() | bad() | eof() | operator bool | operator! |
false | false | false | true | false | false | false | true | false |
false | false | true | false | true | true | false | false | true |
false | true | false | false | true | false | false | false | true |
false | true | true | false | true | true | false | false | true |
true | false | false | false | false | false | true | true | false |
true | false | true | false | true | true | true | false | true |
true | true | false | false | true | false | true | false | true |
true | true | true | false | true | true | true | false | true |
© cppreference.com在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。
本文档系腾讯云开发者社区成员共同维护,如有问题请联系 cloudcommunity@tencent.com

