gpt4 book ai didi

c++ - 为什么 in.good() 与 !in.fail() 不同?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:34:01 26 4
gpt4 key购买 nike

我读到以下内容是反模式:

while(in.good()) {
// ...
}

但这是首选:

while(operation) {
}

但是,流有一个转换为 bool 的运算符,它返回 !fail()!fail()good() 不一样吗?如果不是,为什么这两个函数不对称?我希望它类似于 true == !false

最佳答案

http://en.cppreference.com/w/cpp/io/basic_ios/good 有一张很棒的 table 这解释了 std::istream 的状态和各种函数返回的值。

while ( stream.good() )while(stream) 唯一的不同是当流的内容被成功读取并且 EOF 被读取时到达。那时,stream.good() 返回 true(bool)stream 的计算结果为 false。

关于c++ - 为什么 in.good() 与 !in.fail() 不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32803929/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com