getline和cin.getline这两个函数很相似,先说getline吧,
1:getline有两个重载版本,第一个版本接受两个参数:
一个istream对象的引用(可以是istream&等);
第二个参数string对象的引用
cin遇到空格,tab键就会结束输入(并且会忽略),按下回车后输入的字符才会发送到缓冲区。
getline(cin, name)读取输入中的数据,遇到空格也照样讲空格赋值给name,直到遇到换行符停止,并将换行符丢弃。
getline(cin, name, '~'),第二个版本的getline新增加了一个参数,是字符类型的,表示终止符,遇到该终止符结束输入,并且不会丢弃换行符。
getline()函数位于命名空间std中。
cin.getline(name, size),第一个版本是接受两个参数,一个是字符数组首地址,第二个是表示个数,例如:
int main()
{
using namespace std;
string str, s;
char charr[100];
cin.getline(charr, 100);
getline(cin, str, '~');
return 0;
}
此时的输入为
one two
something~
则对应的输出为 str =