c - 从键盘获取事件(例如按键)

标签 c keyboard-events d dmd

好的,基本上我正在构建一个简单的交互式控制台。

用户可以输入命令 <command>+RETURN并对其进行处理。

    while (true)
    {
        write(LGM_PROMPT);

        auto input = strip(stdin.readln());

        if (input=="exit") break; 
        else 
        {
            // Process command

        }

    }

但是,我还希望能够获取和处理其他事件,例如“向上箭头”、“向左箭头”等。

你会怎么做?这可以用纯 D 代码完成,还是我必须使用 C 函数?

最佳答案

这取决于平台。

在 Windows 上,您需要使用 ReadConsoleInput .

在其他系统上,终端会生成escape codes对于非文本输入。您需要使用 getch 逐个字符地读取它们,然后适本地解析它们。

对于 D,有 ConsoleD项目抽象出一些特定于平台的控制台功能,但我不确定它是否也处理输入。

关于c - 从键盘获取事件(例如按键),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23168745/

相关文章:

dlang如何让dub找到外部库

c++ - 我如何解析 H264 文件和帧

JavaFX - 获取非 ASCII 字符的 KeyEvent

javascript - 使用 jQuery 创建一个简单的 JavaScript 类

macos - 如何在 OSX 上重新映射 CAPSLOCK?

fork - 是否有 fork 并与 D 中的子进程通信的示例?

D 编程语言 : module stdio cannot read file std\stdio. d

c - 没有 math.h 的 c 语言浮点幂程序

c - scanf() 将换行符保留在缓冲区中

c++ - 如何使用 ODBC 批量获取或插入行? (在 C 或 C++ 中)