遇到换行符时getline崩溃

时间:2018-05-04 17:01:17

标签: c++ input ifstream

我试图从带有\n结尾的txt文件中读取一些信息。 然而,每当我穿过一条空线时,我就会遇到一个段错误。但是我只想让这条线被忽略。

代码:

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语句:

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

但是我总是得到段错误^^'。

2 个答案:

答案 0 :(得分:1)

使用

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

检查空行是否错误sincce std::getline读取并丢弃分隔符(在您的情况下为'\n')。

相反,请使用

if (input_line.empty())

答案 1 :(得分:0)

std::getline会丢弃换行符。 您可以检查std::string::empty()以检测空行。