C生万物之从键盘输入

思考了整整两天,关于从键盘输入这个问题总算时思考清楚。

我们知道C语言中常见的输入方法有三种(gets,getchar,scanf),gets函数是将缓冲区的一个字符放入对应指向的地址中,也就是说,它的形参是一个指针,getchar与gets相似,只不过形参为void返回类型为int,表示ASCII值。scanf函数相比较它俩困难的多,因为它可以控制类型。

首先可以肯定的是,当我们输入时从键盘码的每一下都会放入缓冲区,那么放入后,哪些东西不会消失,哪些会消失呢。

这里我两次输入int型数据,注意两次输入我都按了一些回车啊,那这个东西肯定是在缓冲区的,那为什么第二次我仍然可以输入,原因就是除了字符型数据外,其他数据会找非\n和非空格的数据,而\n和空格都会被干掉直到找到下一个数据,否则会让你输入数据,但找到的数据不一定是和自己类型匹配的数据,比如我要int型,而我找到了a,那么这行语句这个整形就不会放入数据,但也不会让你输入。再次输入就从这个数据继续向后。而字符型不论你缓冲区的是什么东西,他都会哪出来,因为我们要知道,只要是我们从键盘直接输入的内容都是可以转换为ASCII值的,这里那数据,包括换行和空格。这是一个比较复杂的问题,uu们可以实验一下,这样更能加深自己的印象。

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不是懒大王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值