ho usato questa funzione:

codice:
int kbhit(void)

{

struct timeval tv;

fd_set read_fd;

tv.tv_sec=0;

tv.tv_usec=0;

FD_ZERO(&read_fd);

FD_SET(0,&read_fd);

if(select(1, &read_fd, NULL, NULL, &tv) == -1)

return 0;

if(FD_ISSET(0,&read_fd))

return 1;

return 0;

}
ed ho provato a fare una cosa del genere:

codice:
if (kbhit()) 
	 c = getchar();
Ora funziona ma non benissimo.. è "lento" nel ricevere l'input ed inoltre a volte se premo una freccia va dalla parte opposta