c++ - 给定 : ifstream infile ("test.txt") is there advantage to use if(! infile)... 与 if(infile.good())...?

标签 c++ ifstream

我在阅读中看到这段代码:

void assure(std::ifstream& infile ) {  
  if(!infile) { /* stuff */}
}

出于好奇,我使用函数参数类型 ifstream&ifstream 进行了测试,它似乎有效。我很好奇条件表达式是如何工作的。这是 NULL 对象还是空对象的情况?我认为 C++ 对象不能为 NULL?

由于 !infile 有效,失败的 ifstream 对象如何表示?

感谢您的启发。

最佳答案

它使用 negate operator , 它只是 Hook 到 fail() 检查。

它并不完全与 good() 相反,因为它还检查 EOF (eofbit)。

(是的,引用总是指向一个对象,这个问题没有意义,只有指针可以为 NULL)。

关于c++ - 给定 : ifstream infile ("test.txt") is there advantage to use if(! infile)... 与 if(infile.good())...?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15177379/

相关文章:

c++ - 不明白为什么这个 std::cout 打印这个

c++ - 如何使用 qt5 在按键上将一条线旋转 45 度?

c++ - 分割数据进行多线程处理

c++ - 这些参数有什么区别

c++ - 如何为我的对象重载 cout?

c++ - 从二进制文件读取到数组:在任意数字之前

c++ - 用于加载文件的 while 循环不起作用

c++ - 从 C++ 文件中读取,处理空白

读取数据时c++ undefined variable

c++ - (C++) noob - 我的代码有什么问题?