Ma forse potresti fare anche qualcosa del genere

codice:
while (scanf("%d", &x) != 1) { /* int x; */
        printf("Questo non e' un intero! OMG HAX\n");
        while (getchar() != '\n');
}
quindi senza fare modifiche sostanziali, ma solo aggiunte.

[ot]complimenti per l'avatar seatleon! ;D[/ot]