首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

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

2012-04-01 
【请教】c语言getchar与scanf问题C/C++ code#include stdio.hmain(){int a,b,c,dscanf(%c%c,&a,&b)cg

【请教】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()把回车吸收掉

热点排行