>>68
環境依存OKだとその方法で出来てしまうんですよね…。

if (feof(stdin)) {
/* エラー処理 */
exit(1);
}

このへんで妥協するしかないですかね。
どうやらfgetsはEOFで読み終わった場合はstdinにEOFが残された状態になるらしく、
再入力を求める場合、どうしても無限ループになってしまいます。