fgets で検出した EOF が stdin に残ってしまっています。
この EOF を消したいのですがどうしたらよいでしょうか?

検索すると fseek, fflush, rewind などを用いたプログラムを
見かけるのですが、どれも動作が保障されていないようです。

char str[10];
fgets(str, 10, stdin); <= EOF を入力すると
fgets(str, 10, stdin); <= この行のfgetsが実行されない