如何进行输入函数垃圾清理

在正式讲输入函数的垃圾处理,我应该引入一个代码

本来我们想要输入两个东西,然后再输出的,最后发现我输入了一个3,我按了回车键最后直接把这个程序的运行结果直接展现出来了,那么如果我是按空格呢?大家想一想会是什么后果呢?

  因为空格在C语言里面表示的是让程序停止运行,尽管我们上面的代码中输入了g但是依旧蹦年运行

那么这个程序就是没有达到我们的心里所预期的东西,那么我们如何根据上面的代码进行修改呢,我们这里一共提供两种思路来解决

方法1:用getchar清除

方法2:用格式串中空格或“%*c”来 吃掉

首先我们先解释方法1

将getchar插入到两个scanf函数之间,这样让getchar把中间我们敲的回车吃掉,这样就可以正常显示了,例如这样:

不知道大家有没有对这个很疑惑,为什么getchar可以把回车键吃掉?

这里呢,插入一个我在前面讲过的一个知识点,因为getchar是要输入的,而使用这个getchar只有一个要求,那就是必须是单一字符,如果位数多了他只识别第一位,那么回车键就是一个单一字符,getchar在这里识别的就是回车键和空格

其次我们解释第二个方法:用格式串中空格或“%*c”来 吃掉

那么怎么理解呢,我们在前面的学习学到了这个*是抑制符,可以指定输入项读入后不赋给变量,那么我们根据抑制符的特性,我们可以使用这个方法进行输入函数的垃圾处理

在这里面要特别强调的一点是,因为空格它是属于字符的,所以要在第二个scanf函数上面加,第一个是整形

以上呢使用%*c来吃吃掉空格或回车键,那么接下来的方法只针对于空格的情况,那就是在第二个scanf的%c的前面敲一个空格就行,那么我们在输入的时候,也一定要用空格将数字和空格进行分隔开,因为这个方法他只识别空格

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值