C++:IO流条件状态

来源:互联网 发布:对网络直播的看法作文 编辑:程序博客网 时间:2024/06/09 04:05

具体说明章节:C++ primer P218

测试代码:

std::istream & input(std::istream &is){    char c;    //当按ctrl + z 结束流时,流对象的eofbit和failbit被置位,流处于可恢复错误,结束while循环    while (is >> c)    {        std::cout << "#" << c<<std::endl;    }    //查询流对象的状态是否处于有效    if (!is.good())      {        std::cout << "@@@" << std::endl;    }    //清除上面的标志位,使流处于有效    is.clear();     return is;}string str;input(cin) >> str;cout << str << endl;

上述代码中,如果将 is.clear()函数注释,则返回的流无效,程序结束,str 无法从流中获取数据
这里写图片描述

反之,返回的流有效,str可以继续从流中获取数据
这里写图片描述

0 0
原创粉丝点击