Dlaczego getchar () nie rozpoznaje zwrotu jako EOF na konsoli?

Mam poniżej krótki fragment kodu, którego używamPellesC.

Po wykonaniu kodu i wpisaniu kilku znaków do konsoli, naciskam enter.

Czy możesz mi wyjaśnić, dlaczegoprintf("%ld\n", nc); linia nie wydaje się być wykonywana? Ponieważ żadne dane nie są zapisywane na konsoli.

#include <stdio.h>

int main(void)
{
    long nc = 0;

    while(getchar() != EOF)
    {
        ++nc;
    }

    printf("%ld\n", nc);
}

Zdecydowałem się uczyć C dokładnie za pomocą książki K&R i wstydzę się powiedzieć, że ten raczej elementarny przykład mnie zakłopotał.

questionAnswers(8)

yourAnswerToTheQuestion