c++程序:为什么在下面代码中name的输出会多出一个’\n‘?
问题描述:
为什么在下面代码中name的输出会多出一个’\n‘?不是 cin.clear()和cin.sync()把缓冲区清空了吗?
int main()
{
double x, mid_homework;
vector<double> homework;
while (cin >> x) {
homework.push_back(x);
}
cin.clear();
cin.sync();
string name;
cout << "test" << endl;
cin >> name;
cout << name <<endl;
system("pause");
return 0;
}
答
可能是把回车键放缓冲区识别了
答
测试了没有\n
答
试试这个用这个,我认为是因为你按回车的时候,它在缓冲区
char name[20];
cout << "test" << endl;
cin.getline(name,sizeof(name));
答
你换一个开发平台比如VS2010重新执行一下,应该就没有了。这个和编译平台有关的。