c-为什么getchar()函数在这里不起作用



我正在尝试编写C代码,它接受整数输入,并打印它们,除非输入换行符('\n'(。

但它从不返回我输入的值。如果我输入6,我希望它打印6,但它给了我54。事实上,无论我期望的数字是多少,它都会给我48+(我的数字(。请帮忙!

这是我的代码:

#include <stdio.h>
int main(int argc, char *argv[])
{
int counter = 0;
int num; 
while (counter <=1)
{
num = getchar();
if (num == 'n')
{
break;
}
counter+=1;
printf("%d", num);
}
return 0;
}

它看起来像是打印了字符的ASCII代码。

使用%c打印一个字符:

printf("%c", num);

或者从值中减去'0'(0的字符代码(,将数字字符转换为相应的整数:

printf("%d", num - '0');

这是因为您正在打印整数的ascii等价物。你可以在阅读后键入你得到的输入,即int(num(,也可以像这样使用scanf:

int num;
scanf("%d", &num);

最新更新