сбой getline при переходе на новую строку - PullRequest
0 голосов
/ 04 мая 2018

Я пытаюсь прочитать некоторые данные из текстового файла с окончанием \n. Однако, когда я пересекаю пустую строку, я получаю ошибку сегмента. Однако я просто хочу, чтобы строка игнорировалась.

код:

std::ifstream config_file (config_);
string input_line;

while (std::getline(config_file, input_line))
  {
    if (??check for newline??)
      continue   
  }

Я пытался до сих пор: изменяя getline на эти параметры:

    (config_file, input_line, '\n')

и оператор if:

if (input_line.at(0) == '\n')

Однако я всегда получаю ошибки сегмента ^^ '.

Ответы [ 2 ]

0 голосов
/ 04 мая 2018

Использование

if (input_line.at(0) == '\n')

, чтобы проверить, является ли пустая строка неправильной, поскольку std::getline читает и отбрасывает разделитель ('\n' в вашем случае).

Вместо этого используйте

if (input_line.empty())
0 голосов
/ 04 мая 2018

std::getline отменяет перевод строки. Вы можете проверить std::string::empty(), чтобы обнаружить пустую строку.

...