fstream读取错误(仅读取第一行)

时间:2018-12-05 05:36:32

标签: c++ fstream ifstream

我想使用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;
}

这是我的方法。我多次调用此方法,但总是读取第一行,我该怎么做才能读取下一行?

1 个答案:

答案 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();
    }
}