getchar
предназначен для ввода одного символа, включая символы пробела, например, символа новой строки '\n'
, который имеет код 10.
Так что, если вы вводите, например, число 42, тогда первый вызов getchar возвращает символ «4» с кодом ASCII 52, а второй вызов - символ «2» с кодом ASCII 50.
Вместо этого используйте функцию scanf, как, например,
for ( int c; scanf( "%d", &c ) == 1; ) {
printf("%d\n",c);
}
Обратите внимание, что в вашем вопросе есть опечатка
my Output:
48
48
58
10
Correct Output: 7
Код ASCII символа '7' - 55, а не 58. :)