示例C程序,用于从文件中添加数字

时间:2014-12-22 16:33:22

标签: c file

#include <stdio.h>
int  main()
{
    int c=0,d=0;
    FILE *f1;
    f1 = fopen("F:\\num.txt" , "r");
    while((c=getw(f1)) != EOF)
    {
        d+=c;
        printf("\n%d",c);
    }
    fclose(f1);
    printf("\n%d",d);
    return 0;
}

我是C中文件的初学者。我试图从名为&#34; num.txt&#34;的文件中找到数字的总和。 。文件中的内容是:

12486

因此输出应为:21
但是当我运行代码时,我没有得到输出,而是得到类似的东西:

540155953

那么这个错误在哪里?

3 个答案:

答案 0 :(得分:2)

while((c = fgetc(f1)) != EOF)
{
   num = c - '0';
   d+= num;
}

获取一个字符将其转换为整数而不是执行添加。

答案 1 :(得分:0)

看起来你不想使用getw。 getw读一个单词而不是char。 如果你想做1 + 2 + 8 + 4 + 6,那么使用:

while((c=getc(f1)) != EOF)
    {
        d+=c-48;
        printf("\n%d",c-48);
    }

答案 2 :(得分:0)

首先,您使用getw()函数读取整个单词 你必须使用读取单个字符(不是整数)的getc(),所以你必须将它转换为整数然后你可以在其中执行数学计算

while(( c= getc(f))!= EOF)
{
    c = c-48;
    d+=c;
    printf("\n%d",c);
}