gets不能连续输入

char a[10],b[10];
printf("请输入用户登陆密码(你名字拼音首字母):");
gets(a);
printf("请再输入用户登陆密码(你名字拼音首字母):");
gets(b);
问题:咋执行的时候,直接跳过了第一个:
请输入用户登陆密码(你名字拼音首字母):
直接第二个:
请再输入用户登陆密码(你名字拼音首字母):
急啊,在线等。。。。。。。

因为程序前面有scanf输入函数,它是以回车结尾的,回车也在字符,
scanf没有读入回车符,所有回车符留在了内存中,你用gets涵数时就会直接读入回车符而跳过输入的环节
如果你加了getchar就会把回车符吃掉,然后后面再用gets时就会提示输入了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-06-13
char a[10],b[10];
printf("请输入用户登陆密码(你名字拼音首字母):");
gets(a);
printf("请再输入用户登陆密码(你名字拼音首字母):");
gets(b);
gets()不要和printf混合用。可以考虑用cout就可以了。
第2个回答  2011-06-13
程序前面有scanf()函数吧,在gets(a)前加上getchar();清除键盘缓冲区的回车符。追问

这样就可以啦,弱弱的问一句,这是为什么呢?????

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网