求教关于C++文件输入流结束判断
ifstreamin("..");用if(in)和用if(!in.eof())判断如果文件未结束执行语句,原理上有什么区别?intmain(){ifstreamin("m...
ifstream in("..");
用 if(in) 和用 if(!in.eof()) 判断如果文件未结束执行语句,原理上有什么区别?
int main()
{
ifstream in("ma1.cpp");
char a[200];
int n=1;
in.getline(a,199);
cout<<a<<endl;
while (in)
{
in.getline(a,199);
if(???) {
cout<<a<<endl;
n++;
}
}
cout<<n<<endl;
return 0;
}
如果文件最后有空行,两者一样;
如果没空行,用if(!in.eof())会忽略最后一行,但if(in)不会(和有空行一样)为什么? 展开
用 if(in) 和用 if(!in.eof()) 判断如果文件未结束执行语句,原理上有什么区别?
int main()
{
ifstream in("ma1.cpp");
char a[200];
int n=1;
in.getline(a,199);
cout<<a<<endl;
while (in)
{
in.getline(a,199);
if(???) {
cout<<a<<endl;
n++;
}
}
cout<<n<<endl;
return 0;
}
如果文件最后有空行,两者一样;
如果没空行,用if(!in.eof())会忽略最后一行,但if(in)不会(和有空行一样)为什么? 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询