getchar()的使用方法——给scanf当爹又当妈

本文介绍了C语言中的getchar()函数,它用于从缓冲区读取字符,能处理空格和回车。与scanf不同,getchar()能读取所有字符,包括空格。在遇到scanf遗留的空白字符时,getchar()能帮助清除,确保后续scanf正常工作。此外,文章还讨论了如何通过循环利用getchar()清除多个字符,以及如何通过EOF结束getchar()的使用。
摘要由CSDN通过智能技术生成

一、getchar()的基本用法
getchar()函数的功能是从缓冲区中读取一个字符,注意,是一个字符。当缓冲区中没有字符可以读取时,getchar()就会等待我们输入一个字符,然后把它读走,相反,如果缓冲区中存在字符,getchar()就不等我们输入,直接读取缓冲区中的字符。与此对应的是putchar(),它能够向终端输出一个字符。
例1
如下图,当我们输入一个字符a时,getchar()从缓冲区中把它读取,之后,putchar()把getchar()读取的字符a输出。
在这里插入图片描述

与scanf不同,getchar()能够读取空格、回车等,而scanf遇到空格与回车时,会结束读取,所以此时,一般scanf读走输入数据后,会留下如 等的字符,而如果我们还要再次调用scanf的话,缓冲区中还有 ,此时scanf不等我们输入数据,就直接把 读走了,从而不能达到我们的目的。
例2
下面第一张图,当输入一个w后,我们按下回车,此时第一个scanf把w读走,缓冲区中还剩下 ,第二个scanf不等我们输入就直接读走了 。注:这种情况是输入类型为字符时才会直接读取 ,如果换成像字符串这样的内容时,scanf还是会等待我们输入。
第二张图,我们可以看到w下面换了一行,这时就是getchar()读取了回车,putchar()把换行输出了。此时,就需要getchar()来帮它了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值