10.27 getchar与scanf的那档子事
今天闲来测试一下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\n",a,a,a); 9 printf("%c %d %x\n",a+32,a+32,a+32); 10 printf("%c",a); 11 putchar(a); 12 putchar(b); 13 return 0; 14 }
却发现了getchar 与scanf混用时出现了不解的问题,如图
当我输入A,按下回车,还未等再次输入就直接输出了。。。。。。???
借鉴了一些大佬们的话,才意识到按回车的时候scanf相当于输入了\n,因而最终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\n",a,a,a); 10 printf("%c %d %x\n",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
本文来自博客园,作者:泥烟,CSDN同名, 转载请注明原文链接:https://www.cnblogs.com/Knight02/p/13888506.html