我正在编写一个解析器,需要在输入时读取用户输入。我在Windows中,所以我使用putwchar和getwchar。我已经使用SetConsoleMode来禁用" ENABLE_LINE_INPUT"和" ENABLE_ECHO_INPUT"所以我可以抓住每个角色。
这是相关代码:
do {
FlushConsoleInputBuffer(CONSOLE_INPUT);
wcs_buffer = getwchar();
switch (wcs_buffer){
case L'\r':
listening = 0;
break;
default:
putwchar(wcs_buffer);
break;
}
} while (listening);
我希望返回键(我相信它是\ r?)立即退出while循环,但它不会,在返回任何事件之前需要输入一个键。
造成这种行为的原因是什么,我能做些什么来阻止它?