int main() (笑) って本人は釣ったつもりのようでしたが、最後は自分が釣られていましたよね。
char c;
if ((c = getchar()) = EOF) { }
が非常にまずいことを理解しましたか?
ディスク上のファイルの最後に EOF が書かれているわけではないことを理解しましたか?