Giusto per pignoleria: se l'utente inserisce un EOF (con Ctrl+D, o redirezionando l'input su un file) quel ciclo diventa un loop infinito. Per questo in genere consiglio:
(o, se ci si sente particolarmente criptici:codice:int ch=0; while(ch!='\n' && ch!=EOF) ch=getchar();
)codice:int ch; while((ch=getchar())!='\n' && ch!=EOF);
Sì, si blocca. Purtroppo il C standard non fornisce alternative portabili per svuotare il buffer a prescindere dal suo contenuto.Originariamente inviato da davidinho
e con
while (getchar() != '\n');
se il buffer è già vuoto il programma non si blocca attendendo l'input?