您的位置:首页 > Web前端

关于feof函数使用的说明

2014-03-02 14:18 363 查看
函数原型: 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);

        }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: