私は D プログラミング言語をいじっていますが、ユーザーがエンターを押さなくても文字を取得する方法を知りたいと思っています。
私が欲しいものの疑似コードの例:
while(true){
if(userHasPressedChar()){
writeln(getChar());
}
}
C++ では、conio.h の「getch()」を使用できますが、ここで同様のものをまだ見つけていません。
編集:私はWindows 7を使用しています。
編集 2:このフォーラムで解決策を見つけました。これは、自分で使用するために変更できます。モジュールメイン;
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);
}
}