C++ 读文件如何判断读入空行

文件每行有3列,user_id, item_id, score
用如下程序读入
while(!infile.eof ())
{
infile >> user_id >> item_id >> score;
。。。
}
文件最后是空行时,实际上的最后一行被又处理了一遍。
请问如何判断空行,或格式错误?

我们一般文件中(txt)里的空行,也就是连续按两下回车产生的空行,如下:
abc
def
ghi
其中abc后面有个回车,之后又回车产生一个空行,下面接着是def……
从字符串的角度来说,这个字符创就是:
"abc\n\r"
"\n\r"
"def\n\r"
"\n\r"
"ghi"
此种情况下,你只需要判断读取的这一行的值是否为"\n\r",就可以判断出是否是空行。
可能还有其他的情况,比如空行里还含有空格等不可见字符的,就只能你自己判断了~
ps:文本文件里我们敲一个回车,相当于输入两个字符"\n\r"。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-01-30
换一种方法提取的话可以做到……
用getline获取整行字符串
然后判断字符串是否为空,或者是否符合格式要求,比如你这个可以判断是否有2个逗号。
最后通过逗号位置截取3个字段,放入指定变量本回答被提问者采纳
第2个回答  2010-01-30
getline
得到一个字符串,不是"\r\n"
就不是空行了
相似回答