
Originariamente inviata da
M.A.W. 1968
Il comportamento di fflush(stdin) non è definito dallo standard. Praticamente nessuna combinazione di compilatore e SO la supporta, se si parla di mainstream.
L'idioma più standard e portabile è il seguente, fornito in via del tutto eccezionale, poiché trattasi davvero di una FAQ che ricorre centinaia di volte su ogni forum, incluso il presente:
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));
*/
}