C++中的输入函数:cin>>、cin.get()、cin.getline() 区别与联系

cin>>函数:

输入结束条件:遇到Enter、Space、Tab键,保留Enter、Space、Tab键在缓存区

对结束符的处理 :输出时丢弃缓冲区中结束符(Enter、Space、Tab),下次直接读取缓冲区剩余的数据。

例如:输入abcd efgh时:

输出: abcd

efgh

第一次读取字符串时遇到空格则停止了,将abcd读入str1,并舍弃了空格,将后面的字符串给了第二个字符串str2。

cin.get()函数:

三种格式:cin.get(), cin.get(char ch), cin.get(array_name, Array_size)

输入结束条件:Enter键,将Enter键保存在缓存区中

对结束符处理:输出时不丢弃上次输入留在弃缓冲区中的Enter,但是可以接受空格字符(输出遗留的空格)。

其中cin.get() 与 cin.get(char ch)用于读取字符,他们的使用是相似的,即:ch=cin.get() 与 cin.get(ch)是等价的。

cin.get(array_name, Array_size)函数:

用来读取字符串的,可以接受空格字符,遇到Enter结束输入,按照长度(Array_size)读取字符, 不会丢弃最后的Enter字符。

cin.getline() 函数:

输入结束条件:Enter键,将Enter键不保留在缓存区,保存时将Enter键换成了“\0”保留下来

对结束符处理:输出时丢弃缓冲区中遗留的结束符Enter,同时也可以接受空格字符(输出遗留的空格)。

cin.getline(array_name, Array_size) 与 cin.get(array_name, Array_size)区别:

cin.get(array_name, Array_size)当输入的字符串超长时,不会引起cin函数的错误,后面的cin操作会继续执行,只是直接从缓冲区中取数据。但是cin.getline(array_name, Array_size)当输入超长时,会引起cin函数的错误,后面的cin操作将不再执行。

cin>>函数、cin.get()函数、cin.getline() 函数区别:

cin>>函数: 输出时丢弃缓冲区中结束符(Enter、Space、Tab),下次直接读取缓冲区剩余的数据。

cin.get()函数:对于字符,输出时不会丢弃缓冲区中结束符(Enter、Space、Tab);对于字符串,输出也不会丢弃缓冲区的结束符(Enter、Space、Tab);

cin.getline(str,n) 函数:对于字符串,输出不超过规定数量n时,会丢弃缓冲区的内容包括结束符Enter键。输出超过规定数量n时,会引起cin函数或者cin.getline() 函数的错误,后面的cin/cin.getline() 操作将不再执行.

注意:cin.get()函数与gets()函数在字符串时是有区别的,一个丢弃结束符,一个不丢弃结束符。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

沐凡星

你的鼓励将是我的动力;

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

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

打赏作者

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

抵扣说明:

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

余额充值