gpt4 book ai didi

c++ - 控制台键盘命中检测和解释

转载 作者:行者123 更新时间:2023-11-30 01:29:28 25 4
gpt4 key购买 nike

嘿,有人向我推荐我应该使用 kdhit() 函数来检测控制台窗口中的按键操作:

“如果是 Windows,kbhit() 函数就是您想要的。如果是 *nix,这里有一个 kbhit() 模拟器。kbhit() 立即返回(无阻塞),并带有一个标志,表明存在或存在不是等待读取的键盘字符。您可以测试标志以查看是否应该发出键盘读取。”

但是我想知道读取 key 缓冲区或他所谓的标志的最简单、希望是标准的方法。有小费吗? 谢谢!

最佳答案

没有标准的方法来做到这一点,因为,如前所述,无法保证您的应用程序运行在一台甚至有键盘设备的机器上,以及即使有键盘设备如何执行这样的用户界面功能不同平台的键盘差异很大。

在这一点上,无论是谁告诉您 kbhit() 是一个 Windows 函数,都误导了您。 kbhit(), getch() and their relatives are actually part of the (C language bindings to the) MS-DOS API.它们出现在 OS/2、Win32 和其他 C/C++ 编译器的运行时库中只是为了MS/PC/DR-DOS 程序的移植辅助。该库将它们映射到任何存在的用于访问键盘的 native 机制(如果有的话),并且通常只以正确的方式让 TUI(而不是 GUI)应用程序访问键盘。

如果您正在编写新的 TUI 应用程序,请不要使用 MS-DOS API。为您的目标平台使用适当的 native API,例如 Win32 Console APIOS/2 Console API ,或 POSIX General Terminal Interface (通过 ncurses 或类似的)。

关于c++ - 控制台键盘命中检测和解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5852385/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com