TCHAR getch() {
DWORD mode, cc;
HANDLE h = GetStdHandle(STD_INPUT_HANDLE);//获取标准句柄
if (h == NULL)return -1;
GetConsoleMode(h, &mode);//,检索主机输入缓冲区的当前输入模式或控制台屏幕缓冲区的当前输出模式 mode是指向接收指定缓冲区当前模式的变量的指针
SetConsoleMode(h, mode&~(ENABLEDUPLEX | ENABLE_LINE_INPUT));//控制台的输入需要显示和需要回撤去掉
TCHAR c = 0;
ReadConsole(h, &c, 1, &cc, NULL);//通过句柄,从控制台读一个字符,给c
SetConsoleMode(h, mode);//控制台的输入需要显示和需要回撤加回来,h是jubing,mode是缓冲区
return c;
}
C语言在Windows环境自己实现一个无回显的getch
最新推荐文章于 2023-03-18 12:42:25 发布