读书人

【请问】c语言getchar与scanf有关问题

发布时间: 2012-04-01 17:23:46 作者: rapoo

【请教】c语言getchar与scanf问题


C/C++ code
#include <stdio.h>main(){      int a,b,c,d;      scanf("%c%c",&a,&b);      c=getchar();      d=getchar();      printf("%c%c%c%c",a,b,c,d);}


此代码运行时输入:
12<CR>
34<CR>
运行结果为:
12
3
scanf以enter作为输完的依据,getchar也以enter作为输完的依据。那为什么结果会是这样。
也就是说12被scanf读取,第一个CR被第一个getchar读取,3被第二个getchar读取,然后是4,然后遇到enter然后就结束了。

[解决办法]
可以这样,就是格式串里面加一个空格,这样会吸收多余的回车
scanf("%c%c ",&a,&b);
[解决办法]
楼主你自己的分析是对的啊。

可以再用getchar()把回车吸收掉

读书人网 >C语言

热点推荐