注:本篇主要服务于刚入门的学习者,笔者也是第一次写这类文章,如果有什么不足或者错误希望读者能够不吝赐教。
进入正题,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’表示的就是回车。如下