当读取第一个字符是EOF时即可判断文件是不是空
#include <stdio.h>
#include <stdlib.h>
void main()
{
FILE *fp
char ch
if((fp=fopen("1.txt","r"))==NULL)
{
printf("Error!\n")
exit(0)
}
ch=fgetc(fp)
if(ch==EOF)
printf("文件为空\n")
else
printf("文件不为空\n")
}
ch就是获取到的文件里面的内容
fgetc(fp)这个函数就是获取文件内容的函数
从文件头开始 一直取到文件尾。。每调用这个函数一次 就会取出文件中的下一个字符 一直到文件尾为止
其中你的那个1.txt要放在和你程序相同的文件夹内
c++判断文本文件为空,必须要先读一下文件(读一个字符),才能判断是否为空。刚打开文件时,文件状态标识都是初始化状态,eof()函数是根据文件状态标识来判断当前是否到了文件尾,而不是用来判断文件是否为空。当读取文件数据时,遇到文件尾时,系统会更改文件状态标识为文件尾,同时,返回EOF标志。
参考代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <fstream>
#include <iostream>
using namespace std
int main()
{
fstream file
int ch
file.open("a.txt",ios::in)
ch=file.get()//试图去读一个字符
if(file.eof()) //或 if ( ch==EOF ) //一个字符都未读到,表示文件为空
{
cout<<"文件为空"<<endl
}
file.close()
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)