Questo è probabilmente più complicato di quanto si immagina. Per fare ciò, presumibilmente avrai bisogno di prendere il controllo dell'eco dei caratteri che l'utente sta digitando, ecc.
Dai un'occhiata alla libreria di curses. La funzione wgetch dovrebbe essere ciò di cui hai bisogno, ma prima dovrai inizializzare le maledizioni, ecc. Avere una lettura delle pagine man - se sei fortunato troverai le pagine man di ncurses o curses-intro. Ecco un frammento:
To initialize the routines, the routine initscr or newterm must be
called before any of the other routines that deal with windows and
screens are used. The routine endwin must be called before exiting.
To get character-at-a-time input without echoing (most interactive,
screen oriented programs want this), the following sequence should be
used:
initscr(); cbreak(); noecho();
Most programs would additionally use the sequence:
nonl();
intrflush(stdscr, FALSE);
keypad(stdscr, TRUE);
Se non hai che manpage/per ulteriori informazioni, cercare le singole pagine man di funzione.
+1. Non mi rendo conto che è possibile disabilitare solo alcuni tasti nella modalità cotta. – Dummy00001
Questo è incompleto. Devi anche disabilitare^U o l'utente può ancora cancellare l'intera linea in sospeso. Anche^W. Ci possono essere di più; dai un'occhiata. Un approccio più sicuro disabilita completamente la modalità ICANON. –
R. - sei corretto. Le specifiche OP non includevano questo, IMO. E avresti bisogno di leggere l'intera struttura che termina le possibilità, giusto? Come già detto altrove, una soluzione completa non è quella che ho postato. –