FILE *fre;
int re_rng;

fre = fopen(file_name, "a");
while (!feof)
{
    fscanf(fre,"%d", &re_rng);

    if (fre==NULL){
        printf("Error");
    }
    printf("%d", re_rng);
}


文本文件如下所示(垂直列表)

12
2
7
5
4
10
15
4
18

最佳答案

要对代码进行很少的更改,您可以执行以下操作

FILE *fre;
int re_rng;

fre = fopen("vals", "r");
if (fre==NULL){
    printf("Error");
}

while (fscanf(fre, "%d", &re_rng) == 1)
{
    printf("%d\n", re_rng);
}


注意事项:您在fopen中放置了错误的说明符,a表示追加,它在文件末尾打开文件进行写入。您想使用r进行阅读。

打开文件后,您需要检查文件是否正常。如果您先尝试阅读然后检查,如果失败,则该程序可能会以segfault结尾。

您还可以将fscanf移至条件条件while,它返回转换的次数,这对您来说意味着它在读取数字时返回1,在无法读取数字时返回0,在末尾返回-1。文件。

我建议您尝试在诸如cppreference.com之类的某些文档站点上阅读所有这些功能(+ feof)。

07-26 09:35