cin+getline浅解

c++的cin一直十分迷糊,但cin在笔试中应用频率很高,因此来详细地整理一下其用法及原理。

cin是类istream类的对象,主要用于从标准输入读数据。

输入缓冲区:从键盘输入字符串的时候 需要敲一下回车 才能将这个字符串送入缓冲区 敲入的回车键也会被转换为换行符\n,这个换行符会被存储在cin的缓冲区,并被当做一个字符来计算。

缓冲区中有数据时,cin才会读取,否则不会读取。

cin可以连续从键盘读取想要的数据,以空格、tab或换行符作为分隔符

输入:

a b c

cin>>a>>b>>c;

则可以分别赋值给a(a)    b(b)   c(c)

不想忽略空白符时,则使用noskipws流控制,(新cin)cin>>noskipws>>input;(会读入空格)

开头空白字符会忽略并清除

字符后面的分隔符是残留在缓冲区的,cin>>不做处理

cin等价于cin.operator>>(),可以操作各类对象?

连读?

getline读取数据时,不阻塞请求键盘输入,而是直接读取,送入目标字符串时,再将换行符替换为空字符‘\0’

getline(cin,test);?

getline 与cin 的关系

cin.get()从输入缓冲区读取单个字符时,不忽略分隔符,直接将其读取

 

c++中定义了一个在std名字空间的全局函数getline,因为这个getline函数的参数使用了string字符串,所以声明在了<string>头文件中了。

getline利用cin可以从标准输入设备键盘读取一行,到文件结束/遇到函数界定符/输入达到最大限度会停止

getline遇到结束符时,会将结束符一并读入指定的string中,再将结束符替换为空字符,因此从键盘读取一行字符时,建议使用getline

cin状态量:是否可读!(缓冲区空则不可读,不空则可读)

cin遇到换行符,就停止读取了

键盘输入其实没有行的概念,只有换行符的概念

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值