【发布时间】:2015-01-21 13:29:04
【问题描述】:
我看过这个例子,关于从文件流中提取字符的 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(...);
【问题讨论】:
-
这不可能是你的代码:它不能编译。
-
使用 getline 将行读取到字符串。如果在while循环中做的话,基本上可以检查字符串的大小,看是不是空行。要读取字符,您可以将字符串用作数组(如果您的字符串是 'line',则 line[2] 是第二个字符)。
-
@learningToCode:实际上,
line[2]是第三个字符,因为数组从索引零开始。 -
是的,我的错。谢谢你。可以使用数组访问运算符访问字符串中的字符。所以,字符串 line,line[0] 是第一个字符。