非阻塞getch(),ncurses

我在获取ncurses的getch()阻止时遇到了一些问题。默认操作似乎是非阻塞的(或者我错过了一些初始化)?我希望它可以像Windows中的getch()一样工作。我尝试了各种版本的

timeout(3000000);

nocbreak();

cbreak();

noraw();

etc...

(并非同时全部)。WINDOW如果可能的话,我宁愿不(明确地)使用any 。一个while围绕残培环路(),检查特定的返回值是OK了。

回答:

curses库是一揽子交易。如果不正确初始化库,您不能仅仅提出一个例程并希望获得最好的例程。这是正确阻塞的代码getch()

#include <curses.h>

int main(void) {

initscr();

timeout(-1);

int c = getch();

endwin();

printf ("%d %c\n", c, c);

return 0;

}

以上是 非阻塞getch(),ncurses 的全部内容, 来源链接: utcz.com/qa/398142.html

回到顶部