RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 1598792
Accepted
Tosa
Tosa
Asked:2024-11-04 19:27:34 +0000 UTC2024-11-04 19:27:34 +0000 UTC 2024-11-04 19:27:34 +0000 UTC

将按下的键输出到控制台。 GLFW,C++

  • 772

是否可以以某种方式在控制台中显示按下的键(以字符串格式,而不是整数)?我发现最好的方法是使用 switch 来查找所需的键。如果您知道更简单的方法,请写下来。

这是我得到的:

#pragma once

#include <iostream>
#include <GLFW/glfw3.h>

std::string getKeyName(int key)
{
switch (key)
{
case GLFW_KEY_SPACE:
    return "Space";

case GLFW_KEY_APOSTROPHE:
    return "'";
case GLFW_KEY_COMMA:
    return ",";
case GLFW_KEY_MINUS:
    return "-";
case GLFW_KEY_PERIOD:
    return ".";
case GLFW_KEY_SLASH:
    return "/";

case GLFW_KEY_0:
    return "0";
case GLFW_KEY_1:
    return "1";
case GLFW_KEY_2:
    return "2";
case GLFW_KEY_3:
    return "3";
case GLFW_KEY_4:
    return "4";
case GLFW_KEY_5:
    return "5";
case GLFW_KEY_6:
    return "6";
case GLFW_KEY_7:
    return "7";
case GLFW_KEY_8:
    return "8";
case GLFW_KEY_9:
    return "9";

case GLFW_KEY_SEMICOLON:
    return ";";
case GLFW_KEY_EQUAL:
    return "=";

case GLFW_KEY_A:
    return "A";
case GLFW_KEY_B:
    return "B";
case GLFW_KEY_C:
    return "C";
case GLFW_KEY_D:
    return "D";
case GLFW_KEY_E:
    return "E";
case GLFW_KEY_F:
    return "F";
case GLFW_KEY_G:
    return "G";
case GLFW_KEY_H:
    return "H";
case GLFW_KEY_I:
    return "I";
case GLFW_KEY_J:
    return "J";
case GLFW_KEY_K:
    return "K";
case GLFW_KEY_L:
    return "L";
case GLFW_KEY_M:
    return "M";
case GLFW_KEY_N:
    return "N";
case GLFW_KEY_O:
    return "O";
case GLFW_KEY_P:
    return "P";
case GLFW_KEY_Q:
    return "Q";
case GLFW_KEY_R:
    return "R";
case GLFW_KEY_S:
    return "S";
case GLFW_KEY_T:
    return "T";
case GLFW_KEY_U:
    return "U";
case GLFW_KEY_V:
    return "V";
case GLFW_KEY_W:
    return "W";
case GLFW_KEY_X:
    return "X";
case GLFW_KEY_Y:
    return "Y";
case GLFW_KEY_Z:
    return "Z";

case GLFW_KEY_LEFT_BRACKET:
    return "[";
case GLFW_KEY_BACKSLASH:
    return "\\";
case GLFW_KEY_RIGHT_BRACKET:
    return "]";
case GLFW_KEY_GRAVE_ACCENT:
    return "`";
case GLFW_KEY_WORLD_1:
    return "non-US #1";
case GLFW_KEY_WORLD_2:
    return "non-US #2";
case GLFW_KEY_ESCAPE:
    return "Escape";
case GLFW_KEY_ENTER:
    return "Enter";
case GLFW_KEY_TAB:
    return "Tab";
case GLFW_KEY_BACKSPACE:
    return "Backspace";
case GLFW_KEY_INSERT:
    return "Insert";
case GLFW_KEY_DELETE:
    return "Delete";
case GLFW_KEY_RIGHT:
    return "Right";
case GLFW_KEY_LEFT:
    return "Left";
case GLFW_KEY_DOWN:
    return "Down";
case GLFW_KEY_UP:
    return "Up";
case GLFW_KEY_PAGE_UP:
    return "PageUp";
case GLFW_KEY_PAGE_DOWN:
    return "PageDown";
case GLFW_KEY_HOME:
    return "Home";
case GLFW_KEY_END:
    return "End";
case GLFW_KEY_CAPS_LOCK:
    return "CapsLock";
case GLFW_KEY_SCROLL_LOCK:
    return "ScrollLock";
case GLFW_KEY_NUM_LOCK:
    return "NumLock";
case GLFW_KEY_PRINT_SCREEN:
    return "PrintScreen";
case GLFW_KEY_PAUSE:
    return "Pause";

case GLFW_KEY_F1:
    return "F1";
case GLFW_KEY_F2:
    return "F2";
case GLFW_KEY_F3:
    return "F3";
case GLFW_KEY_F4:
    return "F4";
case GLFW_KEY_F5:
    return "F5";
case GLFW_KEY_F6:
    return "F6";
case GLFW_KEY_F7:
    return "F7";
case GLFW_KEY_F8:
    return "F8";
case GLFW_KEY_F9:
    return "F9";
case GLFW_KEY_F10:
    return "F10";
case GLFW_KEY_F11:
    return "F11";
case GLFW_KEY_F12:
    return "F12";
case GLFW_KEY_F13:
    return "F13";
case GLFW_KEY_F14:
    return "F14";
case GLFW_KEY_F15:
    return "F15";
case GLFW_KEY_F16:
    return "F16";
case GLFW_KEY_F17:
    return "F17";
case GLFW_KEY_F18:
    return "F18";
case GLFW_KEY_F19:
    return "F19";
case GLFW_KEY_F20:
    return "F20";
case GLFW_KEY_F21:
    return "F21";
case GLFW_KEY_F22:
    return "F22";
case GLFW_KEY_F23:
    return "F23";
case GLFW_KEY_F24:
    return "F24";
case GLFW_KEY_F25:
    return "F25";

case GLFW_KEY_KP_0:
    return "KeyPad 0";
case GLFW_KEY_KP_1:
    return "KeyPad 1";
case GLFW_KEY_KP_2:
    return "KeyPad 2";
case GLFW_KEY_KP_3:
    return "KeyPad 3";
case GLFW_KEY_KP_4:
    return "KeyPad 4";
case GLFW_KEY_KP_5:
    return "KeyPad 5";
case GLFW_KEY_KP_6:
    return "KeyPad 6";
case GLFW_KEY_KP_7:
    return "KeyPad 7";
case GLFW_KEY_KP_8:
    return "KeyPad 8";
case GLFW_KEY_KP_9:
    return "KeyPad 9";

case GLFW_KEY_KP_DECIMAL:
    return "KeyPad Decimal";
case GLFW_KEY_KP_DIVIDE:
    return "KeyPad Divide";
case GLFW_KEY_KP_MULTIPLY:
    return "KeyPad Multiply";
case GLFW_KEY_KP_SUBTRACT:
    return "KeyPad Subtract";
case GLFW_KEY_KP_ADD:
    return "KeyPad Add";
case GLFW_KEY_KP_ENTER:
    return "KeyPad Enter";
case GLFW_KEY_KP_EQUAL:
    return "KeyPad Equal";

case GLFW_KEY_LEFT_SHIFT:
    return "Left Shift";
case GLFW_KEY_LEFT_CONTROL:
    return "Left Control";
case GLFW_KEY_LEFT_ALT:
    return "Left Alt";
case GLFW_KEY_LEFT_SUPER:
    return "Left Super";

case GLFW_KEY_RIGHT_SHIFT:
    return "Right Shift";
case GLFW_KEY_RIGHT_CONTROL:
    return "Right Control";
case GLFW_KEY_RIGHT_ALT:
    return "Right Alt";
case GLFW_KEY_RIGHT_SUPER:
    return "Right Super";

case GLFW_KEY_MENU:
    return "Menu";
default:
    return "Unknown key!";
}
}

提前致谢 :)

c++
  • 1 1 个回答
  • 38 Views

1 个回答

  • Voted
  1. Best Answer
    evo
    2024-11-06T16:08:51Z2024-11-06T16:08:51Z

    glfwGetKeyName。

    请记住,字母键不会显示,除了英文,您需要阅读那里的扫描码

    阅读文档。

    https://www.glfw.org/docs/3.3/group__input.html#gaeaed62e69c3bd62b7ff8f7b19913ce4f

    • 1

相关问题

  • 编译器和模板处理

  • 指针。找到最小数量

  • C++,关于枚举类对象初始化的问题

  • 函数中的二维数组

  • 无法使用默认构造函数创建类对象

  • C++ 和循环依赖

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5