C ++ ifstream和getline

时间:2018-08-02 07:02:26

标签: c++ ifstream getline

如果这很重要,我正在使用旧的gcc编译器(在C ++ 11之前)。

我有一个具有以下代码的函数:

ifstream in(file);
string line;
while (std::getline(in, line))
{

}

我只想确保:

  1. 我不需要检查文件是否确实存在,对吗? getline知道要处理吗?

  2. 由于RAII,最终不需要关闭流,对吗?

2 个答案:

答案 0 :(得分:3)

您可以在C ++参考网站here中看到示例。

其中有不同版本的说明,例如C ++ 98和C ++ 11。

至于答案:

  1. getline()将失败,并且如果事先无法打开文件,您的代码也不会进入while循环。

  2. 正如您所说,由于RAII,您不需要关闭文件。

答案 1 :(得分:-1)

如果文件不存在,显然getline将失败,并且您将不会进入while循环。

您不需要关闭流。