【发布时间】:2019-05-06 15:18:36
【问题描述】:
我想用 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;
}
这是我的方法。我多次调用此方法,但总是读取第一行我该怎么做才能读取下一行?
【问题讨论】:
-
也许使用循环?
-
您想将整个文件保存到一个字符串中吗?或者您是否想将每一行存储在一个容器中,如数组或向量?现在
getline()正在阅读第一行,然后你就完成了。 -
不,我不想把整个文件变成字符串。我想逐行保存。我多次调用方法但无法读取其他行
-
每次调用都会重新打开一个文件,因此您总是从头开始阅读。您需要打开文件一次,然后多次调用
getline,然后在阅读完毕后将其关闭。 -
你要的是协程。看看 C++ 20。