我是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;
}
答案 0 :(得分:0)
while(!feof(fileptrIn))
{
printf("%d", value);
total += value;
++count;
}
你没有在循环中读取任何内容,因此文件指针不会前进到达EOF
答案 1 :(得分:0)
除了其他答案,并继续我的评论,您需要验证所有输入。您可以在删除while (!feof(file))
问题时完成此操作,如下所示:
while (fscanf (fileptrIn, "%d", &value) == 1) {
printf ("%d", value);
total += value;
++count;
}