C non-blocking keyboard input

前端 未结 10 989
说谎
说谎 2020-11-22 05:59

I\'m trying to write a program in C (on Linux) that loops until the user presses a key, but shouldn\'t require a keypress to continue each loop.

Is there a simple wa

10条回答
  •  青春惊慌失措
    2020-11-22 06:16

    select() is a bit too low-level for convenience. I suggest you use the ncurses library to put the terminal in cbreak mode and delay mode, then call getch(), which will return ERR if no character is ready:

    WINDOW *w = initscr();
    cbreak();
    nodelay(w, TRUE);
    

    At that point you can call getch without blocking.

提交回复
热议问题