Ncurses Клавиатура - PullRequest
       17

Ncurses Клавиатура

0 голосов
/ 09 февраля 2012

эй, я тестировал getch и getchar, но его ожидание ввода, я думаю, должна быть функция, которая читает буфер клавиатуры.Часть моего кода

while (1) {
    if (key!='r')
    {
        if (key!='q')
        { 
            mvprintw(LINES-2, 1, "Display will refresh in %2d seconds ", t);
            refresh();  
            sleep(1);
            t--;
            break;
        }
        else
        {
        exit (0);
        }
    }
    else
    {
    return;
    }

}

1 Ответ

4 голосов
/ 09 февраля 2012

Если вы не хотите, чтобы getch() ждал, вы должны настроить его как неблокирующее с помощью nodelay().

После выполнения:

if (nodelay (pWin, 1) == ERR) {
    // some error occurred.
}

затем getch() вернет ERR, если нет доступных данных.

Справочная страница для параметров ввода имеет вид здесь , а поведение getch упоминается и там, и на его собственной странице справки, ссылка здесь .


Параметр nodelay приводит к тому, что getch является неблокирующим вызовом. Если вход не готов, getch возвращает ERR. Если отключено (bf - FALSE), getch ждет, пока не будет нажата клавиша.


В режиме без задержки, если не ожидается ввода, возвращается значение ERR.

...