非阻塞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