什么时候用cin.get()吃掉输入流中的换行符

最近在学C++时遇到了一个疑惑,看primer plus 第六版上的例题有的需要用cin.get()吃掉输入流中的回车(换行),如81页的程序清单4.6。但后来看到循环那章时就疑惑,在用cin>>循环输入时为什么就不需要cin.get()?后来请教了大神才明白。
是否需要使用cin.get()吃掉输入流中的回车要依据下一次读取的方式而定。如使用cin.getline()或类C输入scanf()或put()等的时候,就需要用cin.get()在下一次读取前清空残余缓存;若使用cin>>则不需要,因为cin是智能指针,它将跳过缓冲区的无效字符(如这里的回车),直到找到非空白字符为止,然后它将读取字符,直到再次遇到空白为止。
个人学习心得,如有错误,还请批评指正。

  • 13
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值