下列C++中判断文件是否为空的方法有什么不同
当用fstreamin("")定义对象的时候if(!in)就报错。而用ifstreamin("")定义对象的时候if(!in)就不报错。还有ifstreamin("c:\...
当用fstream in("")定义对象的时候 if(!in)就报错。
而用ifstream in("")定义对象的时候 if (! in)就不报错。
还有
ifstream in("c:\\test.txt",ios::in)//此时文件不存在
if(!in)cout<<"空";
else cout<<"非空";
第一次运行时会显示空。同时建立了test.txt文件
而当对text文件输入信息后回到程序在运行显示还是空。
反过来,如果首先在目录下建立test.txt文件并写入数据。
第一次运行显示 空。
以后不管是否删除文件数据,显示的都是空。
还有如果是if(in.eof())来判断的化输出的都是非空
如何判断文件是否有内容呢?if(in)和if(in.eof())有区别么?fstream,ifstream和ofstream有什么区别呢?
很困惑,忘高手指点,不胜感激 展开
而用ifstream in("")定义对象的时候 if (! in)就不报错。
还有
ifstream in("c:\\test.txt",ios::in)//此时文件不存在
if(!in)cout<<"空";
else cout<<"非空";
第一次运行时会显示空。同时建立了test.txt文件
而当对text文件输入信息后回到程序在运行显示还是空。
反过来,如果首先在目录下建立test.txt文件并写入数据。
第一次运行显示 空。
以后不管是否删除文件数据,显示的都是空。
还有如果是if(in.eof())来判断的化输出的都是非空
如何判断文件是否有内容呢?if(in)和if(in.eof())有区别么?fstream,ifstream和ofstream有什么区别呢?
很困惑,忘高手指点,不胜感激 展开
展开全部
首先声明一点,if(!in)cout<<"空";
这句代码不是用来判断文件是否为空的,而是判断文件是否成功打开。
第一次运行时,ifstream in("c:\\test.txt",ios::in)这个语句发现没有这个文件,再检查if(!in)cout<<"空";文件不存在故不能成功打开,故cout<<"空";
反过来,如果在目录下建立test.txt,第一次运行,不可能显示 空。我已经试过了。
如果到达相关联的输入文件的末尾,eof()函数返回true,否则返回false。
这句代码不是用来判断文件是否为空的,而是判断文件是否成功打开。
第一次运行时,ifstream in("c:\\test.txt",ios::in)这个语句发现没有这个文件,再检查if(!in)cout<<"空";文件不存在故不能成功打开,故cout<<"空";
反过来,如果在目录下建立test.txt,第一次运行,不可能显示 空。我已经试过了。
如果到达相关联的输入文件的末尾,eof()函数返回true,否则返回false。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询