C++的面向行的输入:getline()与get()

C++的面向行的输入:getline()与get()

1.getline()

通过回车键输入的换行符来确定输入结尾。

要调用这种方法,可以使用cin.getline()。

该函数有两个参数:第一个参数是用来存储输入行的数组的名称,第二个是要读取的字符数。

若此参数为20,则只能读取19个字符。余下空间将用于存储自动在结尾添加的空字符。

cin.getline(name,20);

getline成员函数在读取的指定数目的字符或者遇到换行符的时候停止。

2.get()

get()函数有多种变体,之一就是和getline相似,读取参数,工作方式相同,但是此时换行符会停留在输入的队列中。

此时可以借助get函数的变体来处理剩余的换行符,即直接读入。

此时有一下几种用法。

cin.get(name,ArSize);
cin.get();

//或者

cin.get(name,ArSize).get();

为什么使用get而不用getline呢?

使用get()可以清楚区分是否读取了一整行而不是数组已经被填满。就是看下一个字符是否为换行符。

3.空行和其它问题

当getline或者get读取空行时,之前是在上一条结束读取的位置开始读取。但是当前的做法是:(仅限get)此时将设置失效位,使用cin.clear()来恢复输入命令。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值