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

posted @ 2020-10-27 23:37  泥烟  阅读(72)  评论(0编辑  收藏  举报