C++的面向行的输入:getline()与get()
Posted 归止于飞
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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()来恢复输入命令。
以上是关于C++的面向行的输入:getline()与get()的主要内容,如果未能解决你的问题,请参考以下文章
C++基础:各种输入方法总结,cincin.get()cin.getline()getline()gets()getchar()