需要用getchar()吃掉回车的几种情况个人实验总结

写程序的时候有时会使用getchar()来接收一个字符。但程序很长的时候,有时会发生需要getchar()来接收字符的时候,运行直接跳过了。这可能就是,需要接收字符的getchar()接收了上次输入时最后的回车键,而没有正确的接收我要输入的字符。例如下面这个程序:

运行的时候我输入wuhan 回车,程序就直接结束了,不符合我的本意。这时就需要用getchar()来回收这个回车,再输入字符。



这时就运行正确了。那么到底什么时候需要用getchar()来吃掉回车呢?下面来说下我实验总结的几种情况。


1。程序开始时要接收字符ch,不需要用空的getchar();

2.当接受字符ch前面有scanf语句时,不管多远,需要用空的getchar()来吃回车,因为这时scanf的回车还在缓冲区里,上面的例子就是这种情况。

3,gets(a)后面要接收ch是不需要用空的getchar()吃回车的(下面有图)。

4;连续用2个getchar()接收字符时,中间要用一个空的getchar()来吃回车。





图上传卡住了,不传了。总之,最后再总结一次需要用空的getchar()吃掉回车的情况有2个(在目前主要接收输入函数只有scanf,gets,getchar()的情况下);


1),前面有scanf,后面要用ch=getchar()接收字符时,中间要用一个空的getchar()吃回车;

2),2个接收字符的ch=getchar()中间需要一个空的getchar()吃回车。

我们也可以在每次用getchar()接收字符前,清空输入缓冲区(我忘记那个语句了,知道了在补充。。)。

(暂时就这些。。)



评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值