为了账号安全,请及时绑定邮箱和手机立即绑定

C++中cin.get()的具体用法?

C++中cin.get()的具体用法?

holdtom 2021-02-16 17:10:29
cin.get()的具体用法有哪几种?请举个例子看看.希望自己真正知道这个用法的才回答这个问题,因为我已经在百度知道里看过其他的相关问题了,请不要到百度知道里复一些东西到这里来.另外,在百度知道里有个问题我弄不清楚,希望能解释下.谢谢.问题:下列程序中,为什么第二次cin。get()不能用??#include<iostream.h>void main(){char ch;ch=cin.get();//读入一个大写字符ch=ch+32;//通过ascii码把大写的字母转化为小写的 /*-------小写的ascii码比大写的大32;cout<<ch<<endl;char num;num=cin.get();//读入字符类型的int a;a=num-48;cout<<a<<endl;}最佳答案:回答者:mhaha你运行时想输入A,会按A 回车,cin.get()会把回车('\n')当作字符(num)读了,然后``````char ch;cin>>ch;char num;cin>>num;这样(>>)会跳过回车符或者空格
查看完整描述

2 回答

?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

cin.get()是保留回车在输入流队列中的,

而cin是丢弃回车的。

ch=cin.get();是第一次输入,因为是刚开始,所以没有回车保留在输入流的队列中。这时你输入一个字符,然后回车。get()收到回车或空格或制表符就停止输入了、此时,输入流队列中留下一个回车。

num=cin.get();这是第二次输入。因为第一次用了get,所以输入流队列中有个回车。则get()接受这个回车。又因为get()收到回车或空格或制表符就停止输入。

所以这一次的输入就是一个回车,
可以num=cin.get();之前把回车给弄了。你应该想到了。就用cin.get(),把第一次输入留下的回车给弄走.则num=cin.get()就可以正常了。

扩展资料

cin运行机制解析:

C++的cin究竟确切含义是什么呢?很多初学者第一次接触cin时,当程序运行到cin指令时,程序自动会中断,然后等待用户从键盘中输入信息。只有当用户输入完成,按下回车之后,程序才会继续往下运行。

这个过程很容易让初学者产生误会,认为cin就是调用电脑键盘进行输入的指令。也是因为这个错误的认知,会引起一系列的误会。例如上文中图4,虽然程序中有三次cin,但其实我们只要从键盘里输入一次,就可以完成全部输入工作,不一定非得分开三次从键盘输入。

cin本质和其它C++变量一样,它也是一个变量名,它被定义在iostream文件里。因此,我们要使用cin功能时,就必须导入头文件<iostream>。在C++中,变量名通常实质是代表着一段内存区域,

同样的道理,cin这个变量其实也是映射到一段内存区域里面,我们可以认为cin实际上代表着一段内存缓冲区,这段缓冲区的作用是,用于缓存从键盘输入的信息。


查看完整回答
反对 回复 2021-03-25
  • 2 回答
  • 0 关注
  • 340 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信