C++逐行读取文件:hasNextLine

C++ reading file by line: hasNextLine?

本文关键字:hasNextLine 文件 读取 逐行 C++      更新时间:2023-10-16

>我正在读取这样的文件内容:

#include <iostream>
#include <fstream>
using namespace std;
char line[256];
ifstream infile(filename, ios::in);
if(infile){
    while (infile.getline(line, 256)) {
        std::cout << line << std::endl;
    }
}

在 while-loop 中,我想做一些事情,但仅限于所有 n-1 次迭代,而不是在最后一次迭代(文件行)中......所以我想到了类似infile.hasNextLine()但不幸的是我找不到这样做的东西。

如何在C++中实现这种行为?

计算文件中的行数是唯一的方法吗?

您可以使用

peek()

if (infile.peek()!=EOF) 
   ...

如果您已阅读最后一行,则没有什么可阅读的了,peek()将返回EOF。相反,如果peek()返回其他内容,则意味着仍有数据要读取,因此下一行。

另一种方法是在 2-n 次迭代中执行要执行的操作,而不在第一次迭代中执行。我猜你想在两行之间做一些事情?