Как я могу прочитать строку текста из файла, не пропуская пустую строку? - PullRequest
1 голос
/ 14 октября 2011

У меня есть некоторый входной файл, который выглядит следующим образом:

asdfasfasfas....

asdfasdfasd....
asdfasdf....

asdfsadf...

Я хочу иметь возможность читать построчно всю строку, не пропуская пустых строк между ними.Как я могу это сделать?В каждой строке нет пробелов, но если я просто прочитал и обработал как:

 std::string line;
 file >> line;
 Foo(line);

Затем он пропускает вторую строку и переходит прямо ко второй.Я не хочу, чтобы это случилось.Как я могу обойти это?

Ответы [ 3 ]

2 голосов
/ 14 октября 2011

Вы можете использовать getline для чтения построчно, вместо operator>>, который пропустит пробелы.

1 голос
/ 14 октября 2011
std::string line;
while (std::getline(std::cin, line)) {
    std::cout << line << '\n';
}

Это читает каждую строку, по одной, до конца файла и отображает их на экране.

По умолчанию std::istream::operator>> делает форматированный ввод , что (среди прочего) означает, что все пустое пространство отбрасывается.Для пробелов любого вида (включая переводы строки) вам нужно неформатированный ввод .get, read, getline и несколько других.

0 голосов
/ 14 октября 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...