如何使用EOF从文件中读取所有数据

问题描述 投票:0回答:1

我正在学习用C语言编写的文件I / O,我编写了一个程序来读取文件,然后对于找到的每个奇数,它必须在屏幕上打印*

我的问题是我的程序永远永远打印​​*

我尝试了不同的方法,有些方法来自本网站,但直到使用EOF读取文本文件为止,我似乎都无法理解。

我想学习如何阅读文本文件,直到文件结尾。如何阅读直到文本文件的末尾? C中的EOF。


int main(void)
 {

     int num;
     FILE *ifp;

     ifp = fopen("numbers.txt", "r" );

     if(ifp == NULL)
     {
         exit(1);
     }

     do
     {
         fscanf(ifp, "%d", &num);       

            if(num%2 == 0)

                {
                printf("*\n");
                }
        } while(num != EOF);


    fclose(ifp);

    return 0;
}

c file-io eof
1个回答
0
投票

之所以这样做,是因为while(num != EOF)正在测试从文件读取的数字int num是否为EOF,而不是是否到达文件末尾。

要测试是否在FILE *ifp上设置了EOF标志,请改用while(!feof(ifp))

© www.soinside.com 2019 - 2024. All rights reserved.