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条)