getline() 在 while 循环条件下如何计算 true 或 false?

abd*_*sam 5 c++

例如while(getline( , ))

这种条件何时为真/假?为什么使用它们而不是其他情境条件?

πάν*_*ῥεῖ 4

这种条件何时为真/假

鉴于文档std::getline()称返回值是操作中涉及的流的引用,因此该流如何计算为orstd::istream并不明显。truefalse

这是使用从类继承的重载强制转换运算符boolstd::ios来完成的。
此类定义了指示当前流状态的状态标志,并且true仅当流状态为 时才会评估good,其他状态(例如eof或 )fail将评估为false


为什么使用它们而不是其他情境条件?

高度相关的问答:为什么循环条件内的 iostream::eof 被认为是错误的?