例子
void main()
{
string s=" ";
cin>>s;
cout<<s<<endl;
}
结果:输入 hello world 它输出 hello
原因:std::cin流对象在解析流缓冲区对象时,默认使用空白符(空格,或者制表符等)作为分隔符,因此虽然输入hello world,但是只解析出hello并赋值给s,此时world仍然在流缓冲区中。hello也在,只是流对象中的当前指针指向了world处。
因此:输入string的话,遇到空格,回车,tab都会结束;如果要接收带空格的字符串的话可以用getline()。