我是C语言的初学者。在这里,我想从文件* fileptrIn中读取数据并进行一些计算,并将答案存储在* fileptrOut中。但是我在文件* fileptrIn中的第一个元素上遇到了无限循环。它仅在终端中重复打印文件* fileptrIn中的第一个元素。由于没有任何编译错误,因此无法检测到该错误。有任何编辑我的代码的建议吗?

#include<stdio.h>

int main(void)
{
int value;
int total = 0;
int count = 0;

FILE *fileptrIn;

fileptrIn = fopen("input.txt", "r");

if(fileptrIn == NULL)
{
    printf("\nError opening for reading.\n");

    return -1;
}

printf("\nThe data:\n");

fscanf(fileptrIn, "%d", &value);

while(!feof(fileptrIn))
{
    printf("%d", value);

    total += value;

    ++count;
}

fclose(fileptrIn);

return 0;
}

最佳答案

除了其他答案,并继续我的评论,您需要验证所有输入。您可以在消除while (!feof(file))问题的同时完成此操作,如下所示:

while (fscanf (fileptrIn, "%d", &value) == 1) {
    printf ("%d", value);
    total += value;
    ++count;
}

07-26 00:48