Por que o getchar () não reconhece o retorno como EOF no console?

Eu tenho um pequeno trecho de código abaixo que estou executando usandoPellesC.

Quando o código é executado e eu digitei alguns caracteres no console, pressione enter.

Você pode me explicar por que oprintf("%ld\n", nc); linha não parece ser executada? Como nenhuma saída é gravada no console.

#include <stdio.h>

int main(void)
{
    long nc = 0;

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

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

Decidi aprender C usando o livro da K & R e tenho vergonha de dizer que este exemplo bastante elementar me deixou perplexa.

questionAnswers(8)

yourAnswerToTheQuestion