string s;
cin>>s;
cin.ignore();
getline(cin,s);
cout<<s<<endl;
- 当cin>>从缓冲区中读取数据时,若缓冲区中第一个字符是空格、tab或换行这些分隔符时,cin>>会将其忽略并清除,继续读取下一个字符,若缓冲区为空,则继续等待。但是如果读取成功,字符后面的分隔符是残留在缓冲区的,cin>>不做处理。 所以用getline()之前先调用cin.ignore()清除缓冲区的字符,不然会被getline()接收而换行。
- gets()是c中的函数,getline()是c++的函数,在oj中读取一行常用gets()。