나는 D 프로그래밍 언어를 가지고 놀고 있는데, 이 사용자가 enter를 누르지 않고도 어떻게 잡을 수 있는지 궁금합니다. 내가 원하는 것을D 프로그래밍 언어 - 누르지 않고 입력
의사 코드 예 :
while(true){
if(userHasPressedChar()){
writeln(getChar());
}
}
C에서 + +를 내가 conio.h와의 "() getch"를 사용할 수 있습니다,하지만 난 여기 유사한 아무것도 찾을 못하고있다.
편집 : 윈도우 7
편집 2를 사용하고 있습니다 : 나는 내 자신의 사용을 위해 변경할 수 this forum에서 솔루션을 발견했다. 모듈 메인;
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 (++)에서는 OS에 따라 다릅니다 (* conio.h *는 표준 헤더/라이브러리가 아닙니다). 그래서 어떤 OS를 사용하고 있습니까? 글쎄, D가 이것을하는 표준 방법을 지정하지 않는 한, 나는 그것을 의심한다. – hyde
어쨌든, D에는 아마도 C 라이브러리를 사용할 수있는 방법이 있습니다 (* 모든 라이브러리에는 C 라이브러리를 사용할 수있는 방법이 있기 때문입니다). 따라서 * conio *를 사용하십시오. – hyde
아, 죄송합니다. Windows 7을 사용하고 있습니다. – Grisungen