首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么cin.ignore()的行为不稳定?

为什么cin.ignore()的行为不稳定?
EN

Stack Overflow用户
提问于 2013-07-12 03:16:29
回答 1查看 128关注 0票数 1

因此,我一直在尝试让我的C++程序“按enter键继续”,我认为这是每个C++程序员在成年之前都必须经历的一个令人焦虑的阶段。在胡乱摆弄之后,我相信了一些随机的建议,并使用了:

代码语言:javascript
复制
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()组合都有几乎相同的问题--它并不是每次都做同样的事情。有时它会等待两次回车,有时一次就可以了。有人知道是怎么回事吗?

EN

回答 1

Stack Overflow用户

发布于 2013-07-12 03:54:18

在这里,Streams根本不是一个合适的工具。C++标准没有一种可移植的方式来控制控制台。流是一种抽象,允许读/写字符序列,而不是用于交互式UI。

为了可靠地获得您想要的行为,您需要使用像curses这样的第三方库,或者直接与目标平台的控制台API对话。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17601580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档