C语言文件流问题急救

来源:百度知道 编辑:UC知道 时间:2024/09/24 22:37:14
#include<stdio.h>
int main()
{
FILE *fp;
bool flag;
int a;
flag=1;
fp=fopen("e:\\1.txt","w");
fclose(fp);
fp=fopen("e:\\1.txt","r");

while(!feof(fp))
{
flag=0;
fscanf(fp,"%d",&a);
}
fclose(fp);
if(flag)printf("1");
else printf("0");
}

feof不是到文件结束就退出吗?这里是空文件,为什么还要进入while循环,想不通。有人能指点一下吗?

是空文件,但是你没有读取怎么会知道是已经到文件尾了呢
feof是来判断当前文件读写位置是否已经到文件结束的
一般这样用

读取文件;
while(!feof(fp))
{
做一些事;
继续读取文件
}

eof指文件的末尾
比如你文件有12345,而eof不是指5,而是5的后面
所以你文件虽然空,进入文件后并不是真正的eof