3

我希望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)
    {};
}
4

2 回答 2

2

用于SetConsoleMode关闭ENABLE_LINE_INPUT标志。行编辑将不可用,但不会等到按下 Enter 键。

请注意,您不能将三个WCHARs 读入int.

于 2013-02-04T05:05:13.333 回答
-1

还要考虑在 Windows 中使用 ReadFile/WriteFile 的异步 I/O。请参阅有关异步 I/O 的 MSDN

它有点复杂,但你确实有你想要的。

于 2013-02-04T12:10:37.990 回答