我想做一个程序,让用户输入信息,程序逐个字符读取。我试图使用SetConsoleMode来改变控制台。我知道我需要设置ENABLE_PROCESSED_INPUT,但当它被设置后,方向键就不能用了。此外,需要输入另一个键,回车键才能被识别。如何在windows上解决这个问题?
HANDLE hStdin = GetStdHandle(STD_INPUT_HANDLE);
DWORD mode = 0;
GetConsoleMode(hStdin, &mode);
SetConsoleMode(hStdin, mode & ~(ENABLE_LINE_INPUT | ENABLE_ECHO_INPUT) | ENABLE_PROCESSED_INPUT);
int c = getchar();
SetConsoleMode(hStdin, mode);
return c;
说明一下,我是把ctrl-c的sigint诱捕到别的地方,所以需要控制台来发送信号。