控制台窗口是有输入缓冲区的,当你按键后程序没有来得及处理,系统会将按键缓存,等到程序获取按键的时候,系统会把缓冲区里面之前的按键返回. // 调用控制台 API,清空之前缓冲区内的所有按键. FlushConsoleInputBuffer(GetStdHandle(STD_INPUT_HANDLE)); 这段代码只在前面代码的基础上,增加了一行清空键盘缓冲区的函数调用.然后执行程序后可以看到,最后的输出循环无法获取到之前的任何按键. 这个功能在游戏中会很有用.例如,游戏开始之前,会有些等待(例如…