Sera,
se il tuo intento è quello di leggere caratteri da terminale, puoi usare una funzione di alto livello che si chiama getchar definita nell'header stdio.h che prende dallo STDIN il carattere e te lo salva in una variabile. Sfruttando un ciclo while è facile capire come sia possibile leggere e gestire un singolo input alla volta:
#include <stdio.h>
int main(void)
{
// ...
char carattere;
while ( (carattere = getchar()) != EOF) // EOF è dichiarato in stdio.h e puoi invocarlo con la combinazione CTRL + C (a volte CTRL + Z)
{
printf("> è stato premuto il tasto %c\n", carattere);
}
// ...
return EXIT_SUCCESS; // = 0
}
Nota: con alcune librerie è possibile usare funzioni simili tipo getch (es. gcc) o getche, ma queste NON sono ansi-c compatibili, quindi potrebbero non funzionare su tutti i compilatori.
Se lo stream del carattere è diverso dallo standard input usa fgetc (senza l'H finale!). Per maggiori informazioni ti consiglio di dare una sbirciatina su google. Se invece intendi fare tutto da te rinunciando a queste funzioni di alto livello, chiedo scusa in anticipo per la risposta inappropriata.
Nuovamente,
cordiali saluti.
Alessandro