首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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否则。

二次

代码语言:javascript
复制
#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';
}

二次

产出:

二次

代码语言:javascript
复制
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

代码语言:txt
复制
 ? cppreference.com

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

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com