C从一个文件中读取数据并将计算存储在另一个文件中

时间:2017-05-30 04:19:19

标签: c file file-io

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

2 个答案:

答案 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;
}