我正在使用旧的 gcc 编译器,如果这很重要的话(在 C++11 之前)。
我有一个函数,代码如下:
ifstream in(file);
string line;
while (std::getline(in, line))
{
}
我只想确保:
我不需要检查文件是否真的存在,对吧?
getline
知道如何处理这个吗?没有必要因为 RAII 最后关闭流吧?
最佳答案
可以看C++引用网站给出的例子here .
C++98、C++11等不同版本都有说明。
至于答案:
getline()
将失败,并且您的代码将不会进入while
循环,如果它无法事先打开文件。如您所说,由于 RAII,您不需要关闭文件。
关于C++ ifstream 和 getline,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51647401/