正常情况下,cin遇到空格结束读取,写个小例子:
int main(){
string a;
cin>>a;
cout<<a<<endl;
}
输入:hello world
输出:hello
如何读取带空格的字符串呢,通常由三种方式如下:
1、cin.get(array_name, Arsize):
#include <iostream>
using namespace std;
main ()
{
char a[20];
cin.get(a,20);
cout<<a<<endl;
}
2、cin.getline(array_name, Arsize):
#include <iostream>
using namespace std;
main ()
{
char m[20];
cin.getline(m,5);
cout<<m<<endl;
}
3、getline(cin,String_name):
#include<iostream>
#include<string>
using namespace std;
main ()
{
string str;
getline(cin,str);
cout<<str<<endl;
}
getline()和cin.getline()类似,但是cin.getline()属于istream流,而getline()属于string流,是不一样的两个函数。
参考:https://www.cnblogs.com/flatfoosie/archive/2010/12/22/1914055.html