我是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;
}