Create a function to check for key press in unix using ncurses Create a function to check for key press in unix using ncurses unix unix

Create a function to check for key press in unix using ncurses


You can use the nodelay() function to turn getch() into a non-blocking call, which returns ERR if no key-press is available. If a key-press is available, it is pulled from the input queue, but you can push it back onto the queue if you like with 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);        }    }}