【发布时间】:2011-08-16 16:19:31
【问题描述】:
嘿,我建议我应该使用 kdhit() 函数来检测控制台窗口中的按键:
"如果是 Windows,kbhit() 函数就是你想要的。如果是 *nix,这里有一个 kbhit() 模拟器。kbhit() 立即返回(不阻塞)并带有一个标志,表明存在或存在不是等待读取的键盘字符。您可以测试标志以查看是否应该发出键盘读取。"
但是我想知道读取密钥缓冲区或他所说的标志的最简单、希望是标准的方法。有小费吗? 谢谢!
【问题讨论】:
-
没有标准的方法可以用键盘做任何事情(您只能从 STDIN 读取字节作为流上下文)。你将不得不坚持特定平台的东西。
-
C++ 标准委员会尚未同意计算机通常具有键盘。诚然,有些人没有。因此,标准库不支持任何像“按键被击中”功能这样的花哨的东西。您必须使用非标准支持功能,在大多数实际 CRT 实现中都可用。就像 _kbhit()。检查你的文档。
标签: c++ keyboard console keypress