【发布时间】:2014-10-23 15:13:53
【问题描述】:
我不知道发生了什么,我用cin 尝试了各种事情,包括忽略参数和不考虑参数以及同步和各种事情。我想做的只是getline(cin, str)。如果有帮助的话,我会参加 Visual Studio Express 2013。
这是我的代码:
bool prompt(std::string &str)
{
cout << "> ";
if (cin) cout << endl << "Everything is ok" << endl;
std::getline(std::cin, str);
if (!cin) cout << "cin is failed" << endl;
pause();
return true;
}
编辑:删除了 cin.ignore 和 cin.sync。错误仍然发生
程序现在输出“一切正常”和“cin 失败”。除了“cin 失败”位之后没有暂停。
有什么想法吗?非常感谢。
【问题讨论】:
-
cin.sync();的目的是什么? -
@jrok 我不确定是否完全诚实。只是有人建议我尝试一下,然后把它扔在这里,以说明我已经尝试过所有被扔给我的东西。
-
另外,如果
cin.ignore(256,'\r˙);的可用字符少于 256 个,它将阻塞并等待输入。我不得不问 - 你想在这里实现什么? -
Can't reproduce,问题不在于你的程序
-
我在这里缺少short, complete example。