Originariamente inviato da thesalien
questa getchar si comporta in modo molto molto molto anomalo. In pratica è non bloccante anche se io non ho fatto nulla per far si che lo fosse..
Ho provato pure a mettere fflush(stdin) all'inizio ma niente da fare
Tieni presente che:
a) getchar() è "bufferizzata" (come le altre funzioni di I/O standard) e ritorna il carattere solo dopo aver premuto invio.
b) getchar() non è in grado di leggere i tasti speciali (Fxx, frecce, ecc...).
c) Fare fflush(stdin) non ha senso e non serve, fflush è adatta solo per stream di output. Il comportamento non è definito/stabilito per stream di input.
d) Se vuoi fare letture "dirette" (non bufferizzate), usa getch() (nota, non è standard) che è in grado di leggere anche i tasti speciali tramite una sequenza di 2 codici (il primo può essere 0 o 224).
e) Se vuoi maggior controllo, usa le API del sistema (su Windows le API Win32 per la gestione della console).