相关疑难解决方法(0)

C非阻塞键盘输入

我正在尝试用C语言编写一个程序(在Linux上)循环,直到用户按下一个键,但不应该要求按键继续每个循环.

有一个简单的方法吗?我想我可以做到这一点,select()但这似乎很多工作.

或者,有没有办法在程序关闭之前捕获ctrl- ckeypress进行清理而不是非阻塞io?

c linux asynchronous input nonblocking

76
推荐指数
5
解决办法
10万
查看次数

NCurses刷新

我有一个小的ncurse程序我正在运行,但输出似乎没有显示,除非我坚持wrefresh()在while循环.

是否有一些缓冲正在进行?我试过其他refresh功能在图书馆和fflushstddout(我不认为是有道理的,但值得一试),但似乎没有任何工作.

第二个小问题:要进行getch()非阻塞,我们需要打电话nodelay(win,TRUE),对吧?


void main()
{
        initscr();
        start_color();
        init_pair(1,COLOR_YELLOW,COLOR_CYAN);
        WINDOW *win = newwin(10,10,1,1);
        wbkgd(win,COLOR_PAIR(1));
        wprintw(win,"Hello, World.");
        wrefresh(win);
        getch();
        delwin(win);
        endwin();
}

c ncurses

11
推荐指数
1
解决办法
7586
查看次数

标签 统计

c ×2

asynchronous ×1

input ×1

linux ×1

ncurses ×1

nonblocking ×1