기계과 좆밥인데 교수님이 존나 프로그래밍 배우라고 시켜서 공부하고 있는 게이야

질문 좀 할게

그 왜 있잖아 데니스 리치 옹이 쓴 The C Programming Language 책에 있는 예제 중에
문자열 개수 세기 프로그램.
교재에 나온 코드는

#include <stdio.h>

 

main()
{
    long nc;
     nc = 0;
     while (getchar() != EOF)
          ++nc;
     printf("%1d\n", nc);
}

이건데 아무리 문자를 쳐도 개수가 안나오더라고.
그래서 지식인에 검색해봤더니

#include <stdio.h>

 

main()
{
    long nc;
     nc = 0;
     while (getchar() != '\n')
          ++nc;
     printf("%1d\n", nc);
}

이렇게 바꿔줬더라.
원래에선 왜 안됐던건지 설명해줄 사람있어??