输入一行字符(用回车结束),输出每个字符以及与之对应的ASCII代码值,每行输入三对。

用了两种方法编程,一种用getchar输入字符,一种用scanf输入字符。
使用scanf的出现一些异常,每次都会多出一个10。不知道是什么原因,请各位老师帮忙解答,谢谢!
#include <stdio.h>
main()
{ char c;
int n=0;
printf("Please enter a line of characters:");

while(c !='\n')
{
n++;
scanf("%c",&c);
printf("%c:%d ",c,c);
if(n==3)printf("\n",n=0);
}
}

撸主,你好。 程序是先从输入缓冲区取一个字符c,打印其acsii码后,才去判断c是否是'\n'的,所以就是这里出了问题啦。你的输入是 ABCDEFG\n , 字符'G'后面的换行符就是'\n'导致的。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-04-01
敲回车产生了两个字符,一个回车'\r',一个换行'\n',在while中多加个回车的判断就可以
第2个回答  2014-04-01
很明显,输出的是回车的asc码
相似回答