ошибка чтения fstream (только чтение первой строки) - PullRequest
0 голосов
/ 05 декабря 2018

Я хочу прочитать файл с помощью 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 голосов
/ 05 декабря 2018

Вам нужно изменить поток вашей программы.

Не возвращать строку.Используйте строку в цикле, чтобы сделать все, что вы хотите.Гарантируя, что вы либо не покинете метод, ни вернетесь к нему.

Вы не можете продолжать возвращаться к такой функции, так как она будет продолжать читать с самого начала.

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();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...