
Originariamente inviata da
M.A.W. 1968
Per la pulizia del buffer occorre quindi un idioma specifico, come il seguente.
codice:
void kbd_clean(void)
{
register char ch;
do
{
ch = getchar();
} while (('\n' != ch) && (EOF != ch));
/*
** Alternativamente, piu' in sintesi:
** while ((ch = getchar() != '\n') && (ch != EOF));
*/
}
Le funzioni unbuffered, come getch(), non hanno questo genere di problemi e restituiscono direttamente il primo tasto premuto.
Non accedono ad alcun buffer interno e non richiedono la pressione di tasti specifici. Nulla di particolarmente esotico.