有关c++的输入(0)

        注:本篇主要服务于刚入门的学习者,笔者也是第一次写这类文章,如果有什么不足或者错误希望读者能够不吝赐教。

        进入正题,c++中主要有两种输入方式:一种是cin,另一种是cin.get()。

 上面就是cin的用法,但是他有一点不足,比方我按了空格(space)、tab、回车(enter)cin不能帮我存储到a里面,如下图

 

 

但是我们也可以利用这一特性,比方我们要同时输入多个单字符或数字到不同的变量中,中间只需要输入用以上键位(space、tab、enter)空开,最后用回车(enter)确认即可 

 

但是如果你刚好就要存储space、tab、enter,那么你就可以用cin.get(),他用两种用法,一种是直接cin.get(ch),另一种是ch=cin.get()。

笔者直接输入了一个enter得到如下图的结果

从例子上来看,cin.get可以接收比cin更多的东西,但并不意味着cin.get可以取代cin。如下图 

此时我们要使a=1,b=2,如果连续按下1 [enter]2,会得到如下图

操作时发现,按下enter程序就结束了,因为cin.get会读取空字符如空格tab回车,所以b被存储了enter,所以输出结果是这样,如果要实现我们最初的目标,则要输入“12[enter]”

但此时我们会发现,这样程序的交互性不好,因为在“请输入b”下面直接跟着结果,在提示语“请输入b”之前我们就要输入b。那么我们要如何实现我们的初衷呢?还是两种办法。Plan1:在cin.get(a)后面在接一个cin.get(),用来接收回车,防止对程序的干扰 

 

该情况回车没有被b接收,而是被”cin.get();”横刀夺爱了。

Plan2:在cin.get(a)后在来一个cin.ignore()如下图

cin.ignore()函如其名—无视。括号里面无参数表示无视1个字符。

而cin.ignore(100,’2’)表示无视2之前最多100个字符(包括这个2)

不过一般第二个参数都用’\n’表示的就是回车。如下

 

 

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值