c语言解决feof读取文件多读一行的问题

#include
int main(int argc,char **argv)
{
        FILE* fp;
        char buf[300];
        char c;

        fp = fopen("test.txt","r");

        while(!feof(fp))
        {
                if((c=fgetc(fp)) == EOF)
                        break;
                printf("%c",c);
                /*if((fgets(buf,300,fp)) == NULL )
                        break;
                printf("%s",buf);*/

        }
        fclose(fp);

        return 0;
}

这里直接在while(!feof(fp))循环体内利用fgets或其他函数读取到最后的时候直接跳出本层循环,就不会出现多读一次的问题,
如果不这样处理,那就的在while(!feof(fp))之前多读取一次就行啦。

发表评论

[/0o0] [..^v^..] [0_0] [T.T] [=3-❤] [❤.❤] [^v^] [-.0] [!- -] [=x=] [→_→] [><] 更多 »
昵称

抢沙发~