我在玩D编程语言,想知道我如何在不需要用户按下输入的情况下抓住一个字符。我想要什么D编程语言 - 输入没有按下输入
伪例如:
while(true){
if(userHasPressedChar()){
writeln(getChar());
}
}
在C++中我可以使用CONIO.H的“残培()”,但我还没有在这里找到了类似的话。
编辑:我使用的是Windows 7
编辑2:我发现在this forum一个解决方案,我可以改变我自己用的。 module main;
import std.stdio;
import core.sys.windows.windows;
void main() {
auto hCon = GetStdHandle(STD_INPUT_HANDLE);
FlushConsoleInputBuffer(hCon);
for(;;) { // in default console mode, ctrl-C will terminate
INPUT_RECORD inrec;
DWORD numread;
while(inrec.EventType != KEY_EVENT) {
WaitForSingleObject(hCon, INFINITE);
ReadConsoleInputW(hCon, &inrec, 1, &numread);
}
auto keyEvent = inrec.KeyEvent;
writefln("VK: %x \tChar: %x \tState: %x",
keyEvent.wVirtualKeyCode,
keyEvent.UnicodeChar,
keyEvent.dwControlKeyState);
}
}
在C(++)中,这取决于操作系统(* conio.h *不是标准头文件/库)。那么你在使用哪种操作系统?那么,除非D指定了一个标准的方法来做到这一点,但我怀疑它。 – hyde 2014-09-24 11:40:44
无论如何,大概D有一种使用C库的方法(因为* everything *有一种使用C库的方法)。所以只需使用* conio *。 – hyde 2014-09-24 11:42:06
啊,对不起。我正在使用Windows 7. – Grisungen 2014-09-24 11:42:17