c语言关于getchar和putchar的问题

#include<stdio.h>

int main() { int c,n; for(n=0;n<10;++n) {c=getchar(); printf("输入的数为%d\n",c);
}return 0;
}我想实现输入10个数字,并同时输出这是个数字的功能,但是结果却是

这怎么一回事啊

第1个回答  2013-08-12
要是想连续输入10个数并把这10个数输出的话,要用数组,然后循环输入循环输出,就和你那是差不多的,只是scanf()用过一个循环,printf()用一个循环,最好不用getchar(),不好操作,没有scanf好操作。
第2个回答  2013-08-12
#include<stdio.h>
int main()
{
int c,n;
for(n=0;n<10;++n)
{
c=getchar();
getchar() ; //这个getchar()是用来过滤掉你输入数字后的那个回车的! 回车也是一个字符!其数值是10 用字符表示为'\n' 这样改一下就好了
printf("输入的数为%d\n",c);
}
return 0;
}
第3个回答  2013-08-12
c=getchar(); 换成
scanf("%d",&c);

getchar是得到字符,输入1得到的是字符‘1’的ascII码49,不是数字1.
而且,getchar能够获取回车,ascII码是10。本回答被提问者采纳
相似回答