【C】getchar()

使用方法

getchar()是一个获取字符的函数,一次只能获取一个字符。获取到的字符用printf()或者putchar()都可以输出。

第一个c是我们输入的,第二个是printf()输出的,第三个是putchar()输出的。

为什么用int 创建变量

在getchar()的函数说明中说道:当发生错误或读到文件尾部,就会返回EOF,切换到反编译中可以看到EOF就是define大一的整型-1。

如果返回-1的时候,我们用char来接收,char类型在读取整数的时候,会发生截断,所以为了不发生意外,我们用int。

问题

在使用getchar()函数的时候我们会遇到一些问题,比如下面这段输入密码并确认的代码。

 当我们输入了密码‘123’之后,它会直接显示确认失败,这是因为我们在输完密码之后按了回车,而回车就是‘\n’ ,也就是说这时的输入缓冲区中放的是‘123\n’,当scanf读取缓冲区的时候,遇到\n就会停止,拿走\n之前的字符,留下\n,等到getchar()读取的时候,发现缓冲区中有字符\n,就直接读走了,所以轮不到我们输出,程序就直接执行后面的内容。所以这个时候我们可以写一段循环来优化代码。

当缓冲区中有字符的时候,我们就让getchar()一直读取,直到读取到'\n'。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值