当读取第一个字符是槐孙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要放在和你程序相同的文件夹内
1.个人认为,判断文件内容为空可以从两个角度来考虑,第一种是读取文件的内容,读到的内容是否为空字符串;第二键顷型种是直接判断文件的大小。伪 C# 代码:
/* 在代码头部引入 System.IO 命名空间 */
// 第一种方法
using(FileStream fs=new FileStream(@"C:\a.txt",FileMode.Open){
using(StreamReader sr=new StreamReader(fs){
if(sr.ReadToEnd == string.Empty){
//为空
}
}
}
//第二种方法
FileInfo fi=new FileInfo(@"C:\a.txt")
if(fi.Length==0){
//为空
}
相比之下,第二种方法更为简单
2. 这种方法适合纯文本文件,比如 txt ,ini,html,xml等文件,因为稿猜它们不包括任何格式信息。它不适合诸如 doc,xls,zip, rar 等文件,因为即使这些文件是新建的空文件,它们也会包括一些应用程序信息或者格式信息。
区分适合不适合的办法是,你打开应用程序(如乎汪 Word, Excel),新建一个空文件,看它的大小是否为 0 。
希望以上可以帮到你。
foef()是判断文件当前读写指针是否在文件末尾,如果文件有内春瞎橡容,读写到文件末尾,返回值也是真,但是文件有内容,并不是空的。你可以读取文件第一个字符,如果第一个字符是文件末神祥尾扒旁,文件就是空。如char
ch
ch=fgetc(fp)if(ch==EOF)
printf("文件为空\n")
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)