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 flags | basic_ios accessors |
---|---|
eofbit | failbit |
false | false |
false | false |
false | true |
false | true |
true | false |
true | false |
true | true |
true | true |
© cppreference.com
在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。