【问题标题】:Press a key to exit or perform switch task in program anytime [duplicate]随时按一个键退出或执行程序中的切换任务[重复]
【发布时间】:2018-12-16 14:56:01
【问题描述】:

我正在开发一个简单的程序,其中包含 2 或 3 个简单的游戏,例如挂人和井字游戏。在这里,当用户在 b/w 中的任意位置按下 ESC 时,它应该退出,当用户按下 CTRL 时,它应该切换游戏。该怎么做?

#include "iostream"
#include "ctime"
#include "cstdlib"
#include "cstdio"
#include <stdlib.h>    
using namespace std;

int main()
{
    cout << "Test\n" << endl;
    srand((int)time(0));
    int s, x, run = 0;
    cin >> s;
    for (int i = 0; i < 6; ++i)
    {
        int r = rand() % 6 + 1;
        if (r == s)
        {
            cout << "U:" << s << endl << "AI:" << r << endl << "OUT!!!";
            break;
        }
        cout << "U:" << s << endl << "AI:" << r << endl;
        run += s;
        system("pause");
        cin >> s;
        system("cls");
    }
    cout << "total runs =" << run << endl;
    system("pause");
}

【问题讨论】:

  • 如果这个问题已经存在,请。重定向我!!
  • C++ 确实没有“键”的概念,因此无法检测或处理单个击键。您需要为此使用操作系统特定的功能。
  • 此外,所有系统头文件(包括 C++ 标准头文件)都应包含在尖括号中,如#include &lt;iostream&gt;
  • Ctrl 不会生成可读的按键,尤其是在终端窗口中。至于“如何”,答案是“通过做”。 stackoverflow 上的问题应该是特定的编程相关问题。这不是一个教程网站,抱歉。
  • “概念”很简单:轮询按键事件。检查事件中传递了什么密钥。如果您想了解更多详细信息,则必须告诉我们您的操作系统(作为标签包含在您的问题中,最好在问题本身中注明)并向我们展示一些尝试。

标签: c++


【解决方案1】:

您需要从操作系统读取输入以解决您的问题...C++ 没有像 ESCCTRL 这样的键的概念。

您可以使用不同的库...我建议您使用其中的三个:

  • SFML 多媒体 C++ 库
  • GLFW我最喜欢的一个
  • SDL2 很受欢迎……但我还是更喜欢 GLFW

如果你正在使用 linux 并且不想对 Windows 的东西和 GUI 感到厌烦,你也可以看看 ncurses

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多