我正在读取类似以下的文件内容:
#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++中实现这种行为?
计算文件中的行数是唯一的方法吗?
getline
函数--通常你想要的是std::string line; while (std::getline(infile, line)) ...
。 - Jerry Coffin