특정 바이트 수를 읽은 후 ReadConsoleW()
이 반환 될 것으로 예상됩니다. 그러나 반환하지 않습니다.표준 입력에서 비 차단 읽기
ReadConsoleW()
을 지정한 바이트 수를 읽는 즉시 반환 할 수 있습니까?
내가 노력 코드
은 여기에 있습니다 :#include <stdio.h>
#include <Windows.h>
int main()
{
//something is being written to stdin.
Sleep(2000);
int b;
int r;
//read 3 wide character
ReadConsoleW(GetStdHandle(STD_INPUT_HANDLE), &b, 3*sizeof(TCHAR), (LPDWORD)&r, NULL);
//problem: no returns until enter pressed
putc(b,stdout);
while(1)
{};
}
여전히 버퍼에있는 _one_ 문자를 기다립니다. 즉 읽기를 계속 차단합니다. –
'PeekConsoleInput'은 비 차단이지만,'ReadConsoleInput'을 사용하여 입력을 소비해야합니다 (또는'ReadConsoleChars'가 차단되지 않도록 입력 이벤트 유형을 확인하십시오). (그리고 당신이 콘솔 이벤트를 기다리고 싶을 때마다, 콘솔 핸들에서'WaitForSingleObject' 만). –