如何将istream评估为false?

时间:2015-03-28 19:44:39

标签: c++

在下面的代码中,我们反复调用in.get(c),每次都返回isteam&isteam&的实例如何在while语句中求值为false?

我检查过in.get没有返回空引用,所以我不确定它如何评估为false。

istream &to_std_out(istream &in) {
    char c;
    while (in.get(c)) {
        cout << c;
    }
    in.clear();
    return in;
}

int main() {
    istringstream str("A sailor went to see, see, see.");
    to_std_out(str);
}

1 个答案:

答案 0 :(得分:1)

这些流有一个转化运算符void*explicit转换运算符bool。如果设置了状态位falsestd::ios_base::badbit中的至少一个,则流将转换为std:: ios_base::failbit