Я написал функцию, предназначенную для чтения любых целых чисел из входного файла, найти сумму этих чисел и найти общее количество чисел (которое я получил). Вот он:Ошибка при добавлении значений, полученных от fgetc?
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, который должен быть равен total = 27; Я получаю total = 267. Аналогично, если я просто печатаю значения fgetc, я получаю числа как 53 54 57 и т. Д. Однако, когда я печатаю их, используя% c, я получаю 78345. Как я могу использовать эту логику для добавления этих значений в виде суммы? Заранее спасибо!
'если (CSE <= '9' && CSE> = '0')' какой-либо причине не только с помощью 'isdigit'? Или, по крайней мере, реструктурировать, чтобы яснее понять, что вы имеете в виду? И вы не считаете _integers_, а _digits_. – Olaf
'fprintf (outp,« Total is% c \ n », total);' должно быть с '% d' – pzaenger
Вы используете'% c' вместо '% d' для печати всего. – Quentin