这句代码纤岁不是用来判断文件是否为空的,而是判断文件是否成功打开。
第一次运行时,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)//判断是否文件为空{
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)