gpt4 book ai didi

c++ - 使用 ncurses 创建一个函数来检查 Unix 中的按键

转载 作者:IT老高 更新时间:2023-10-28 22:36:57 26 4
gpt4 key购买 nike

我一直在寻找与 kbhit() 等效的工具,并且我已经阅读了几个有关此主题的论坛,并且大多数人似乎都建议使用 ncurses。

我应该如何检查是否在 C++ 中使用 ncurses 按下了某个键?

ncurses 提供的函数getch() 从窗口中读取一个字符。我想写一个函数,只检查是否有按键,然后我想做 getch().

最佳答案

可以使用nodelay()函数将getch()变成非阻塞调用,如果没有key则返回ERR -新闻可用。如果按键可用,则从输入队列中拉出,但如果您愿意,可以使用 ungetch() 将其推回队列。

#include <ncurses.h>
#include <unistd.h> /* only for sleep() */

int kbhit(void)
{
int ch = getch();

if (ch != ERR) {
ungetch(ch);
return 1;
} else {
return 0;
}
}

int main(void)
{
initscr();

cbreak();
noecho();
nodelay(stdscr, TRUE);

scrollok(stdscr, TRUE);
while (1) {
if (kbhit()) {
printw("Key pressed! It was: %d\n", getch());
refresh();
} else {
printw("No key pressed yet...\n");
refresh();
sleep(1);
}
}
}

关于c++ - 使用 ncurses 创建一个函数来检查 Unix 中的按键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4025891/

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