使用eof函数判定:
文件存放数据时,在数据的最后一个字节之后存在一个文件结束符(EOF,end of file),编译器读取到这个结束符时,就知道已经读取了该文件的全部数据,该文件结束符占一个char型数据大小的空间。
eof函数是ifstream类中封装的函数,在读取到文件结束符时为真,表明文件读取完毕且过程正常。
如果读取错误而文件读取终止,则函数值为false,表明文件读取过程出现错误。
如果一个文件为空,那么其文件存储的内容为空,即文件内仅存在一个文件结束符(既是首位,也是末位)
那么读取该文件中一个字符,并用eof判断:
如果eof返回值为true,那么从文件读取的字符为文件结束符,文件为空;
如果eof返回值为false,那么文件读取的字符不是文件结束符,文件非空。
具体代码实现:
ifstream read;//创建一个 ifstream实例化对象
ifs.open(FileName,ios::in);//以读文件方式打开文件
char ch;
ifs>>ch;
if(ifs.eof()){
cout<<"文件为空!"<<endl;
}