【发布时间】:2016-04-08 12:02:44
【问题描述】:
当我从文件中读取时,我想检测空行。我试过line.empty() 和line.size()==0 和line=="",但是这些都不适合我。
有什么建议吗?
void readFile(const string & fn){
ifstream fichier;
string line;
try{
fichier.open(fn.c_str(),ifstream::in);
while(getline(fichier,line))
{
if(line.empty())// i tried also line=="" and line.size()==0
{
cout<<"empty line!!"<<endl;
}
else{
cout<<"Line:"<<line<<endl;
}
}
fichier.close();
}catch(const string & msg){
if(fichier.is_open()) fichier.close();
cout<<"Error !!";
}
}
【问题讨论】:
-
您确定这些行实际上是 为空的吗?里面没有空格?而您确实在输入文件中有“空”行吗?
-
如果像
line.clear()这样在每次迭代结束时清除该行会怎样? -
您能否添加一些文本行的示例,其中可能包含一些应该为空的文本行?
-
@Joachim Pileborg:是的,你是对的,我的文件中有一些空间,我没有检测到它们,因为我有一个大文件,现在当我删除行中的空格时,它的工作,谢谢!!
-
@NathanOliver 是的,我做到了,它有效,谢谢!!