EOF leyendo C / C ++

Estoy usando NetBeans MinGW para compilar programas c simples (soy nuevo en esto). Mi problema es que tengo este código simple

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char** argv) {
    int c,i=0;
    while((c=getchar())!=EOF){
        i++;
    }
    printf("%d",i);
    return 0;
}

y cuando intento finalizar la entrada de esta manera:

hola ^ Z [enter]

no lo hace, necesito volver a ingresar

^ Z [enter]

para terminarlo

Agradecería que me dijeras por qué sucede esto.

Gracias por adelantad

Respuestas a la pregunta(2)

Su respuesta a la pregunta