C++按: hasNextLine?行读取文件

标签 c++ file io iteration

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

#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 循环中,我想做一些事情,但只在所有 n-1 次迭代中,而不是在最后一次迭代中(文件行)...所以我想到了类似 infile.hasNextLine 的东西() 但不幸的是我找不到这样做的东西。

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

计算文件中的行数是执行此操作的唯一方法吗?

最佳答案

您可以使用 peek() :

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

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

关于C++按: hasNextLine?行读取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29721326/

相关文章:

c++ - 微软的edX C++类(class):double vs long double-为什么缺乏通用标准?

c++ - 在 opencv for c 中,什么函数做与 Mat::convertTo 和 cvtColor() 完全相同的事情

C++:如何分配和填充通过引用传递的结构的动态数组?

php - Linux Crontab 执行 PHP 脚本但是这个脚本不会删除文件

java - 使用java读取文本文件中一定数量的行

c++ - 为什么在 Cocos2d-x 3.2 中无法获取重力值

java - 输入和输出流的 IOUtils.copy() 速度非常慢

java - 为什么每次使用 javacc 工具解析赋值语句时语法检查都会失败?

java - 需要创建用户在 swing 应用程序中输入的信息并将其写入文件

c++ - 通过扫描关键字读取文本文件