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