c语言如何判断文档为空?

c语言如何判断文档为空?,第1张

c语言如何判断为空可用读文件 *** 作函数的返回值来判定,如:

函数: int fgetc(FILE *stream) //从参数stream 所指衡尘好咐铅的文件中读取一个字符. 若读到文件尾而无数据时便返回EOF.

当以读方式打开文件后,第一次使用fgetc()就返回EOF,则表明文件是空文件。

参考代码:

#include <stdio.h>

void main()

{

FILE *fp

int ch

fp=fopen("新建文本文档.txt","r")

ch=fgetc(fp)

if ( ch==EOF )

printf("file is null\n")

else

printf("read a char : %c\n")

fclose(fp)

}

注:

EOF不是文件中的一个字符,而是一个标志,C中定义EOF为-1,可在stdio.h中查到。

读文件函数,如:fgetc()在读到文件尾而无数据时便会返回EOF。

空文档是指字节兄培数是0的文档。如果文档中有字符,则不是空文档。

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的话:

if((fp=fopen("FileName","rb"))==NULL)

{exit(1)}

fseek(fp,0L,SEEK_END)

len=ftell(fp)

if(len==0)

{

/握悔*文件为空*/

}


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存