好的,基本上我正在构建一个简单的交互式控制台。
用户可以输入命令 <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/