C++ ifstream 和 getline

标签 c++ ifstream getline

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

我有一个函数,代码如下:

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

}

我只想确保:

  1. 我不需要检查文件是否真的存在,对吧? getline 知道如何处理这个吗?

  2. 没有必要因为 RAII 最后关闭流吧?

最佳答案

可以看C++引用网站给出的例子here .

C++98、C++11等不同版本都有说明。

至于答案:

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

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

关于C++ ifstream 和 getline,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51647401/

相关文章:

c++ - 将单个字符转换为 std::string prepends\x01

c++ - select 在尝试从套接字和标准输入读取时总是返回 -1

c++ - 如何在 C++ 中计算文件的行数?

要构造的 C++ 二进制文件

c++ - 如何从文本文件读取字符串和 double 到链接列表

python - 可以在循环内多次使用 getline() 吗? - Cython,文件读取

c++ - 递归函数——计数排列和忽略排列

c++ - 对于 Msp430 Controller 编码

C++ getline() 在 clear() 之后

C++:可能是 Xcode (Mac) 问题。无法使用 getline() 从外部文件中读取数字