int main()
{
string line:
while(getline(cin,line))
cout<<line<<endl;
return 0;
}
getline()的原型:
头文件:#include <string>
istream& getline ( istream &is , string &str , char delim );
istream &is 表示一个输入流,譬如cin;
string&str 表示把从输入流读入的字符串存放在这个字符串中(可以自己随便命名,str什么的都可以);
char delim 表示遇到这个字符停止读入,在不设置的情况下系统默认该字符为'\n',也就是回车换行符(遇到回车停止读入。
C++在使用getline的时候,总是有各种各样的未解之谜,很多都是由于缓冲区没有清除而造成的,所以我们只要及时的清空缓冲区就能符合预期的使用getline。
cin.get()会把回车('\n')当作字符读入.而cin>>则会跳过回车或空格
int main()
{
int n;
cin >> n;
cin.get();//吸收回车
for (int i = 0; i <n; i++)
{
string s;
getline(cin, s);
cout << s << endl;
}
return 0;
}