我编写了一个函数,该函数旨在从输入文件中读取所有整数,找到这些数字的总和,并找到数字的总数(这是我正在工作的)。这里是:

int total = 0;
int ncount = 0;
int cse;
do
{
    cse = fgetc(infp);
    if(cse <= '9' && cse >= '0')
    {
        total += cse;
        ncount++;
    }
}while(cse != EOF);

fprintf(outp,"Number of numbers is %d\n", ncount);
fprintf(outp, "Total is %c\n", total);


如果我输入78345,它应该等于总数= 27;我的总数为267。类似地,如果我仅打印fgetc值,则会得到53 54 57等数字。但是,当我使用%c打印它们时,则得到78345。如何使用此逻辑将这些值相加?提前致谢!

最佳答案

fgetc返回与字符数字值不相等的单个字符代码。在您的代码中,您正在比较并添加字符代码值。

您需要使用以下内容将字符代码转换为整数:

 int num = cse - '0';

10-04 12:08