今天闲来测试一下getchar和putchar
1 #include<stdio.h> 2 3 int main() 4 { 5 char a,b; 6 a=getchar(); 7 scanf("%c",&b); 8 printf("%c %d %x ",a,a,a); 9 printf("%c %d %x ",a+32,a+32,a+32); 10 printf("%c",a); 11 putchar(a); 12 putchar(b); 13 return 0; 14 }
却发现了getchar 与scanf混用时出现了不解的问题,如图
当我输入A,按下回车,还未等再次输入就直接输出了。。。。。。???
借鉴了一些大佬们的话,才意识到按回车的时候scanf相当于输入了 ,因而最终b输出了个换行...
稍做了改进
1 #include<stdio.h> 2 3 int main() 4 { 5 char a,b; 6 a=getchar(); 7 getchar(); 8 scanf("%c",&b); 9 printf("%c %d %x ",a,a,a); 10 printf("%c %d %x ",a+32,a+32,a+32); 11 printf("%c",a); 12 putchar(a); 13 putchar(b); 14 return 0; 15 }
通过多加的的getchar(),抵消了回车的干扰,在我依次输入A S后得到了想要的效果,yeah
借鉴语录如下
https://zhidao.baidu.com/question/1110884331347650299.html
https://www.cnblogs.com/CQWF/p/9495309.html