关于feof函数使用的说明

函数原型: int feof(FILE *stream);

功能:检测流上的文件结束符

返回值:feof(fp)有两个返回值:如果遇到文件结束,函数feof(fp)的值为非零值,否则为0。

什么时候结束了,当读取到那个字节为0xFF时,就结束了。

EOF是文本文件结束的标志,在文本文件中都是以ASCII码字符表示的,取值范围 0-127 共128个字符,EOF的16进制代码为0x1A(十进制为26),因此可以用EOF作为文件结束标志。

而在二进制文件中,就会有-1值的出现,因此不能采用EOF作为二进制文件的结束标志,为解决这一个问题,ASCI C提供一个feof函数,用来判断文件是否结束。feof函数既可用以判断二进制文件又可用以判断文本文件。

feof函数要读取到最后一个位置的内容,要强调位置和内容,举例说,我叫你去火车的最后一节车厢,这就是位置,我叫你一直往前走,直到摸到铁轨,这就是内容。所以feof函数实际上是根据读取到最后一个位置的内容来判断的。所以要多走一字节。

大家,经常要按行读取文件,总会遇到麻烦。我用代码说吧:

文本内容

hello

world

        while(!feof(fp))
        {
            char buf[30];
            fgets(buf,30,fp);
            printf("%s",buf);
            printf("%d\n",strlen(buf));
            char ch = fgetc(fp);//这就是多读一字节,来判断是否结束
            if(ch == EOF)//the end file
            {
                break;
            }
            fseek(fp,-1,SEEK_CUR);
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

敏哥向前冲

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值