在 VC 下清空键盘缓冲区的方法

控制台窗口是有输入缓冲区的,当你按键后程序没有来得及处理,系统会将按键缓存,等到程序获取按键的时候,系统会把缓冲区里面之前的按键返回。

	// 调用控制台 API,清空之前缓冲区内的所有按键。
	FlushConsoleInputBuffer(GetStdHandle(STD_INPUT_HANDLE));

这段代码只在前面代码的基础上,增加了一行清空键盘缓冲区的函数调用。然后执行程序后可以看到,最后的输出循环无法获取到之前的任何按键。

这个功能在游戏中会很有用。例如,游戏开始之前,会有些等待(例如过场动画)。正式游戏开始时,应该清空按键缓冲区,防止用户在等待期间的按键影响游戏操作

参考自EasyX 官方网站中的文章在 VC 下清空键盘缓冲区的方法