Quote Originariamente inviata da M.A.W. 1968 Visualizza il messaggio
Codesto testo (Deitel?) finisce per confonderti solo le idee, specialmente a causa della traduzione piuttosto approssimativa.

Il buffer al quale si riferiscono le slide che hai referenziato è il buffer di tastiera gestito dal BIOS (nei PC standard trattasi di una coda circolare gestita tramite due puntatori nell'area dati del BIOS) che sta a monte dello standard input, in quella lunga catena della quale si accennava sopra.

Viceversa, il buffer della getchar() è un buffer interno alla libreria di runtime: come ogni buffer di tale categoria, è qualcosa che si frappone tra il file di input (in questo caso stdin, che è comunque un "file" per il sistema operativo e per il linguaggio C) e il programma stesso. In definitiva, si parla di due distinti buffer, con meccanismi di gestione diversi, a carico di entità ben distinte.

Ribadisco, per maggior chiarezza: quando si parla di buffered input per le funzioni di libreria come getchar(), ci si riferisce al buffer interno alla libreria e in particolare alla necessità di terminare ciascun input con ENTER.
ok almeno questo mi é chiaro. ma in breve quello che succede e che il progrAmma si sospende quando invoco getchar, i tastinpremuti vengono caricati dal buffer della tastiera(quello doppia coda circolar) allo stdin e dallo stdin la getchar li legge e li mette nel proprio buffer e li fornisce al programma??
potresti spoegarmi a grosse linee il procedimento ? grazie