char str[20];

fgets(str,sizeof str,stdin);

としたとき、改行文字も入れて20文字以上書き込むと標準入力に何文字か残ってしまいますよね?
これを消し去るにはどうしたらいいのでしょうか。

調べてみたところfflush(stdin)とすればできると書いてあったのですが、Linux+gccの環境ではできないようなんです。