C++的cin、getline()和cin.getline()

916 阅读1分钟

一般输入用cin就可以搞定了。

int a;
cin>>a;

但是有一天你会发现你在试图读入一串含有空格的字符串的时候,cin是干不了的,没错,因为cin是读不了空格的。

于是我们引入getline()。

#include <iostream>
using namespace std;
int main()
{
    string a;
    getline(cin,a,'\n');
    cout<<a;
} 

这个函数有三个参数,第一个是输入流如cin,第二个是写入的地方,第三个是输入结束标志,就是告诉程序遇到什么字符停止读入,也可以不写,默认遇到回车符停止读入。即上面的程序也可以写成下面这样。

#include <iostream>
using namespace std;
int main()
{
    string a;
    getline(cin,a);
    cout<<a;
} 

然后你会发现,getline()只能用于string类。

要读char的一串,就要用cin.getline()。

#include <iostream>
using namespace std;
int main()
{
    char a[90];
    cin.getline(a,80);
    cout<<a;
} 

第一个参数是写入的地方,第二个参数是表明在第几个位置放'\0',即放字符串的结束符。

这个函数只能用于char型。