我想使用std :: getline读取文件。但仅读取第一行
string FileReader::readLine() {
string line;
string read;
ifstream ReadFile;
ReadFile.open("input.txt");
if (ReadFile.is_open()) {
getline(ReadFile, line);
//ReadFile.close();
}
return line;
}
这是我的方法。我多次调用此方法,但总是读取第一行,我该怎么做才能读取下一行?
答案 0 :(得分:2)
您需要更改程序流程。
不返回字符串。使用循环中的行可以执行所需的任何操作。确保您不离开方法或返回方法。
您不能再回到像这样的功能,因为它会从头开始读取。
void FileReader::readLine() {
string line;
string read;
ifstream ReadFile;
ReadFile.open("input.txt");
if (ReadFile.is_open()) {
while(getline(ReadFile, line))
{
//do what you want with that line, but return program flow here.
}
ReadFile.close();
}
}