This question already has answers here:
Why is a second cin.ignore() necessary?
(2个答案)
6年前关闭。
因此,我一直在尝试让我的C++程序“按Enter键继续”,这是每个C++程序员在成年之前都要经历的一个令人讨厌的阶段。摆弄后,我相信一些随机的建议并使用:
与我尝试过的cin.get()和cin.ignore()的所有其他组合几乎存在相同的问题-它不会每次都执行相同的操作。有时它等待两个输入笔划,有时则可以。有人知道发生了什么吗?
(2个答案)
6年前关闭。
因此,我一直在尝试让我的C++程序“按Enter键继续”,这是每个C++程序员在成年之前都要经历的一个令人讨厌的阶段。摆弄后,我相信一些随机的建议并使用:
while(userWins<2)
{
roundResult = playRound();
if(roundResult>0)
{
userWins++;
cout << "Du vann! Det står nu " << userWins << "-" << cpuWins << "." << endl ;
cin.get();
cin.ignore(std::numeric_limits<streamsize>::max(),'\n');
}
}
与我尝试过的cin.get()和cin.ignore()的所有其他组合几乎存在相同的问题-它不会每次都执行相同的操作。有时它等待两个输入笔划,有时则可以。有人知道发生了什么吗?
最佳答案
在这里,流简直就是错误的工具。 C++标准没有可移植的方式来控制控制台。流是一种抽象概念,它允许读取/写入字符序列,而不是用于交互式UI。
为了可靠地获得所需的行为,您将需要使用curses之类的第三方库,或者直接与目标平台的控制台API对话。
关于c++ - 为什么cin.ignore()行为不稳定? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17601580/
10-15 04:29