下列C++中判断文件是否为空的方法有什么不同

下列C++中判断文件是否为空的方法有什么不同,第1张

首先毁培睁声明一点,if(!in)cout<<"空"

这句代码纤岁不是用来判断文件是否为空的,而是判断文件是否成功打开。

第一次运行时,ifstream in("c:\\test.txt",ios::in)这个语句发现没有中则这个文件,再检查if(!in)cout<<"空"文件不存在故不能成功打开,故cout<<"空"

反过来,如果在目录下建立test.txt,第一次运行,不可能显示 空。我已经试过了。

如果到达相关联的输入文件的末尾,eof()函数返回true,否则返回false。

你可加一段程序即可:

ifstream fin("铅毕input.txt"毁孝)

string s

if(!fin)

{

cout<<"纤激稿Error: can't open the file !"<<endl

return

}

fin>>s

if(s.length()==0)

cout<<"Error:no contents in this file !"<<endl

// //严重有问题啊,把写好谈吵桥的文件 换行就不行了。

#include <iostream>

#include <string>

#include <fstream>

#include <cstdlib>

using namespace stdint main(){ifstream input("E:\\a.txt")if(input){string sgetline(input,s)if(s==""){cout<<"空文件 "<<endl

input.close()

ofstream output("E:\\a.txt")

output<<"sadfd"<<endl

output.close()}else{ifstream output("E:\\a.txt")

while(getline(output,s))

cout<<s<<endl}

} } 网上找的类似碰郑的问题含猛:

#include <iostream>

#include <fstream>

using namespace stdint main(){ifstream input("a.txt")if(input){input.seekg(0,ios_base::end)

fstream::off_type Len=input.tellg()

if(Len==0) cout<<"Empty file

"}} streamoff filelen( ifstream&file ) //{fstream::pos_type cur_pos = file.tellg()

file.seekg( 0L, ios::end )

fstream::pos_type end_pos = file.tellg()

file.seekg( cur_pos, ios::beg )

return end_pos}len = filelen( infile )

if(0==len)//判断是否文件为空{


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12346876.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存