>>744
自説に固執して本質を見失っている。
fgets()版は最低限これだけ。
char buf[1024];
int count = 0;
while (fgets(buf, sizeof(buf), stdin) != NULL) ++count;
fgetc()版だとこうなる。
int ch;
int count = 0;
while ((ch = fgetc(stdin)) != EOF) if (ch == '\n') ++count;
この状態で、fgets()版は長い行の扱いの問題があり、fgetc()版は最終行の問題がある。
どちらの方がましかということで、後はもう、ケースバイケースでしょう。