Чтение txt построчно - PullRequest
       4

Чтение txt построчно

3 голосов
/ 23 января 2012

Я читаю текстовый файл построчно в C ++.Я использую этот код:

while (inFile)
{
getline(inFile,oneLine);
}

Это текстовый файл:

-------

This file is a test to see 
how we can reverse the words
on one line.

Let's see how it works.

Here's a long one with a quote from The Autumn of the Patriarch. Let's see if I can say it all in one breath and if your program can read it all at once:
Another line at the end just to test.
-------

Проблема в том, что я могу прочитать только абзац, начинающийся с "Вот длинный и т. Д ...«и он останавливается» сразу: «Я не мог решить прочитать весь текст.Есть ли у вас какие-либо предложения?

1 Ответ

6 голосов
/ 23 января 2012

Правильная идиома чтения строки:

std::ifstream infile("thefile.txt");

for (std::string line; std::getline(infile, line); )
{
    // process "line"
}

Или альтернатива для людей, которым не нравятся петли for:

{
    std::string line;
    while (std::getline(infile, line))
    {
        // process "line"
    }
}

Обратите внимание, что это работает должным образом, даже если файл не может быть открыт, хотя вы можете добавить дополнительную проверку if (infile) вверху, если вы хотите создать специальную диагностику для этого состояния.

...