我看了一下这个例子,在istream get
方法中从文件流中提取字符。
基本上,我不希望我的程序读取空白行,但是它跳到下一行并发出错误,它无法读取下一行 - 当它真的不应该这样做时。读取空白行。
无论如何,这是我遵循的教程http://www.cplusplus.com/reference/istream/istream/get/,这是我的代码
is.get(c)
if(c == '\0')
{
cout << "Blank line" << endl;
}
else
{
is.getline(...);
}
ignore whitespace...
is.getline(...);
答案 0 :(得分:6)
您似乎认为空行以某种方式由空字符表示。它不是。空行只包含行尾字符('\n'
,最初可能是行结束序列,但在重要的系统上,行结束序列被转换为非结束符号 - std::ios_base::binary
模式)。要检测空行,您可以使用std::getline()
或使用std::istream::getline()
读取一行,并检查结果是否为空。