C++-基础语法之cin.getline() 与 cin.get() 的区别,以及getline()函数使用方法

C++之基础语法-cin.getline() 与 cin.get() 的区别,以及getline()函数使用方法

C++输入过程中,是把输入加载到缓冲区中,然后对缓冲区中的字符进行读取。cin,cin.get(),cin.getline()三个函数虽然都可以进行舒服读取,但是它们对缓冲区内的数据处理方法是不同的(如遇到【space】、【enter】的处理方法)。本文简单介绍cin,cin.get(),cin.getline()的基本用法,从根本上解释它们对缓冲区的数据处理方法。
1.cin的基本方法
结束条件:【enter】、【space】、【table】
cin的输入很简单,整体的看作是输入,当遇到【enter】、【space】、【table】时,就表示当前输入结束,下一个输入从非【enter】等开始,两输入之间无限多个【enter】等都是无效的。
2.cin.get()的基本用法
2.1 a=cin.get() 或者cin.get(a)
结束条件:输入字符足够厚回车
说明:这个是单字符的输入,用途是输入一个字符,将其ASCALL码存到a中
处理方法:与cin不同,cin.get()在缓冲区遇到【enter】等时,不会被舍弃,而是继续留在缓冲区中

2.2 cin.get(arrayname,size)把字符输入到arrayname中,长度不超过size
注释:arrayname必须是char[]类型,即char数组类型,不可以为string类型;size是指输入长度,即允许输入的最大长度。
处理方法:假设把数据输入到 char a[arraylength],数组长度为arraylength。
注意:前size-1有效,最后一个补‘\0’
综上:当吧大于数组长度的字符串放出char a[arraylength]中,系统自动扩张数组a的长度使a能放得下,但是这么做容易产生运行错误

2.3 cin.get(arrayname,size,s)
用法:cin.get(arrayname,size,s) 把数据输入到arrayname字符数组中,当到达长度size时结束或者遇到字符s时结束
注释:a必须是字符数组,即char a[]l类型,不可为string类型;size为最大的输入长度;s为控制,遇到s则当前输入结束缓存区里的s将被舍弃
3.cin.getline()基本用法
cin.getline()的用法和cin.get()用法大致相同,没有2.1用法,只有2.2参数,2.3参数两类
cin.gerline(arrayname,size)
cin.getline(arrayname,size,s)用法与cin.get()效果大致相同,但也有些区别
1)cin.getline(arrayname,size)与cin.get(arrayname,size)的区别
cin.get(arrayname,size)当遇到[enter]时会结束目前输入,他不会删除缓冲区中的[enter]
cin.getline(arrayname,size)当遇到[enter]时会结束当前输入,但是会删除缓冲区中的[enter]
2)cin.getline(arrayname,size,s)与cin.gei(arrayname,size,s)的区别
cin.getline(arrayname,size,s)当遇到s时会结束输入,并把s从缓冲区中删除
cin.get(arrayname,size,s)当遇到s时会结束输入,但不会删除缓冲区中的s

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值