问题标签 [kbhit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
147 浏览

c++ - Linux 的 kbhit 内存泄漏

代码在这里。当我运行我的程序(我将 kbhit 保存为头文件并将其保存在我的程序文件夹中)时,我在使用 kbhit 的第一个实例上获得了未初始化的读取访问权限(我正在使用 DrMemory 进行内存调试)。我包含了 sys/ioctl.h,因为没有它我的程序无法使用 FIONREAD。有问题的是调用 tcsetattr(STDIN, TCSANOW, &term); 我不完全理解这是如何工作的,所以任何帮助将不胜感激。谢谢!

编辑:确切的消息是“UNINITIALIZED READ:读取 12 个字节。系统调用 ioctl.0x5402 参数 #2。” 该行来自 tcsetattr() 调用。此错误是在将 kbhit 保存为 cpp 文件并将其模板化到另一个文件中之后出现的。该程序运行得很好,除了一个错误。

0 投票
0 回答
39 浏览

c - 实现“q”中断启用循环退出

我正在尝试实现一个仅通过按“q”键退出的循环,我该怎么做。

这是我正在制作的 shell,我尝试了各种输入方法,如 getchar()、getch() 和 kbhit() 的扩展代码 {因为 kbhit() 在 linux 中不可用。}

我遇到的反复出现的错误是,每次循环运行迭代时,任何输入函数都会暂停循环执行并等待用户输入。在这里,我试图在按下“q”键时退出循环。

提前致谢 :)

0 投票
1 回答
115 浏览

c++ - C ++中_kbhit的替代函数?

我目前正在尝试在 ios 上开发一个简单的蛇游戏。本教程要求我使用,但这在我的 mac 上不起作用。_kbhit 的替代方案是什么?我是 C++ 新手,所以会很感激任何帮助!

0 投票
1 回答
221 浏览

ada - 如何检测以 Ada 语言按下的任何键盘按钮

我是 Ada 编程的初学者。我正在尝试使用 Ada 制作“2048”游戏。我在 C++ 中做了“2048”,并使用“kbhit()”来检测是否按下了任何键盘按钮。我想知道是否有任何类似的函数可用,如 Ada 中的“kbhit()”,或者如何编写一个函数来检测是否按下了任何键盘按钮,或者我应该只在 C++ 中通过接口使用该函数。

0 投票
1 回答
526 浏览

c++ - 如何在 Linux 上使用 kbhit() 和 getch()?C++

我正在用 C++ 编写一个简单的蛇游戏。但我有一个问题:我需要使用kbhit()getch()读取用户输入的内容。我需要使用它,conio.h但 Linux 上没有这个库。我试过用这个,但有一个问题:代码正在编译,但我不能使用程序,它只是停止。

那么我该如何使用kbhit()andgetch()呢?或者有什么替代方案吗?

我的代码:

0 投票
0 回答
110 浏览

c++ - 如何在 Mingw64 中使用 kbhit 功能?

我正在 Mingw 开发一些游戏,(这是学校作业,所以我无法更改开发环境)。我必须考虑按键事件,所以我使用了 kbhit(),包含在 conio 头文件中。但是,它通常不适用于 Mingw64 设置。(我可以包含conio.h,但它根本不起作用)你们能给出任何解决方案吗?(我不能使用外部源或头文件)

0 投票
3 回答
82 浏览

c++ - 即使在函数调用在 C/C++ 中结束后,函数内部声明的变量是否仍保留在堆栈中?

下面是我的 C++ 代码。这里在函数“temp”中,首先声明“ch”的值然后打印(第一次“ch”没有初始化,所以“ch”有未定义的值)。然后“if”条件满足(在里面“如果”没有工作完成)。然后函数结束并返回到函数调用的下一行(增量'i')。然后下一次迭代也以与上一次调用相同的方式进行。相同的循环一直持续到按键被按下。当一个键被按下时(例如“a”被按下),“else”被执行并且被按下的键被 getch() 获取。然后函数结束并返回到函数调用的下一行(i++),然后在所有即将到来的下一次迭代中,当调用一个函数时,'ch'被分配与前一个键按下('a' )并打印该字符('a')。它继续打印'a',直到按下另一个键。为什么以及如何为“ch”分配上一个函数调用的值。上一次调用的变量值是否存储在堆栈中并将其分配给下一次调用的变量?

0 投票
1 回答
121 浏览

c - 即使没有按下键,C kbhit() 也会返回 1

我注意到我正在制作的游戏中的 kbhit() 函数变得很奇怪,所以我尝试了这段代码。当没有按下键时,它在开头打印 0。然后我按了一个键,它打印了 1,即使在我停止按任何键后仍继续打印 1。为什么会这样?

0 投票
0 回答
52 浏览

c - 按住一个键,然后按另一个键,停止按下原来的键

(不,不是硬件问题)

我在标准 C 中对 kbhit() 进行了如下编码(从这里获得;另一个函数“setTerm()”设置(非)规范模式):

我随后在一个程序中实现了 kbhit(),该程序读取键盘输入并将其打印到屏幕上。当一个键('A'呢?)被按住时,它会被重复打印。但是,当按住“A”的同时按下第二个键(例如,“B”)时,会打印“B”并且不再出现“A”。我的意图是继续打印“A”,但事实并非如此。这是一些显示问题的代码(用于箭头键或 AD;按 Enter 或 '\n' 结束):

setTerm()同样,如有必要,我可以添加我的功能。但是问题仍然存在,我怎样才能继续输入按住键的输入?

0 投票
0 回答
22 浏览

python - Python 3.9 msvcrt.kbhit() 不会检测到 Control、Alt 和 Shift 键

操作系统:Windows 10 Python 版本:3.9,从 Microsoft Store 安装

只要我按下Ctrl 或 Alt 或 Shift 之外的任何键,下面代码中的 while 循环就会中断。任何想法为什么?