入力はfgetsを使えとよく言われていますが、
fgetsは読み込んだ文字列がバッファに入りきったかどうか判別できませんよね?

改行で読み終わった場合は、バッファに改行コードがあるかどうかで読みきれたかどうか
判別できます。しかしEOFで読み終わった場合はそれが判別できないと思うのですが。

入力→バッファがあふれたらstdinをクリアして再入力

という処理を確実に行うにはどうすればいいのでしょうか。