1

所以我一直试图让我的 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() 组合的问题几乎相同 - 它每次都不会做同样的事情。有时它会等待两次输入笔画,有时它可以等待一次。有谁知道发生了什么?

4

1 回答 1

1

Streams 只是这里的工作的错误工具。C++ 标准没有可移植的方式来控制控制台。Streams 是一种抽象,允许读取/写入字符序列,而不是用于交互式 UI。

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

于 2013-07-11T19:54:18.030 回答