【C语言】getchar()和putchar()的用法


先在这里推荐一个 网站 ,可以查找C语言中的库函数

getchar

介绍

  1. getchar意思是从标准输入中读取一个字符
  2. stdin分为std和in,std就是standard,in就是input
  3. 函数无参数,但有返回值,就是读取到的这个字符的ASCII码值,所以它的返回类型是int,但遇到文件尾部或者读取错误时会返回EOF
  4. 使用它必须引用头文件

在这里插入图片描述
在这里插入图片描述

例子

在这里插入图片描述
常见问题
在这里插入图片描述

为什么连确认的机会都没给我就确认失败了?
其实这与getchar与scanf在缓冲区读取字符不同有关

在这里就得先介绍下缓冲区

缓冲区
缓冲区也叫缓存,是内存空间的一部分。getchar和scanf等输入函数不是直接从标准输入中读取数据的,而是先通过键盘输入到缓冲区,再到缓冲区进行读取。
如图在这里插入图片描述
解释问题
在这里插入图片描述

先从键盘中读取123456\n,因为scanf遇到空格、\n等表示读取结束,所以scanf实际拿走的只有123456,剩下的\n就被getchar读取了,再判断时,肯定是确认失败。

解决方法(清理缓冲区)出现这种情况是因为getchar读取到我们不想要的字符,所以我们只要再使用一次getchar()读取清理缓冲区即可

在这里插入图片描述
再次提问
在我输入Y,并打下回车键时,这个\n会不会也进入缓冲区?答案是会的。在这里插入图片描述


scanf与getchar的区别

  1. getchar只能读取一个字符,而scanf却可以读取各种类型的数据,包括字符、字符串、整形、浮点型、地址等等
  2. scanf不能读取空格和回车(目前我只知道这两个,后面如果有了解到就过来补充),所以有时候用到多空格的输入时可以使用getchar来互补

putchar

在这里插入图片描述

介绍

  1. putcahr意思是把一个字符写到标准输出
  2. stdout是标准输出的意思,std就是标准,out就是输出
  3. putchar有参数和返回值。参数是要输出的字符(这个字符的类型必须是整形,这就是与getchar的返回值想匹配),返回值是返回这个字符的ASCII码值,但putchar的返回值一般可以省略。
  4. 同样,使用它得包含头文件。

例子
在这里插入图片描述
这个函数我还没发现什么奇特的问题,如果有朋友发现了可以告诉下我。这个函数就讲到这了。


今天讲了getchar和putchar的作用,如有不对之处,请多多指正。

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值