【发布时间】:2014-07-03 15:21:48
【问题描述】:
我使用的代码是这样的:
string input;
cout<<"First line"<<endl;
cin>>input;
cout<<"second line: "<< input << endl;
getline(cin, input);
cout<<"third line: "<< input << endl;
但是,当我输入 54 时说输出是这样的:
First line
>56
second line: 56
third line:
然后程序终止,甚至没有要求另一个输入。这很奇怪,因为以下确实按预期工作:
string input;
cout<<"First line"<<endl;
getline(cin, input);
cout<<"second line: "<< input << endl;
getline(cin, input);
cout<<"third line: "<< input << endl;
即输入和输出是:
First line
>56
second line: 56
>45
third line: 45
【问题讨论】:
-
getline()消耗\n,cin >>不消耗。 -
要读取整行使用
std::getline(),提取运算符<<只是从输入中读取单个空格分隔的字段