getchar()与while循环体的问题

问题相关代码
int main00()
{
    long nc;

    nc = 0;

    while (getchar() != EOF)
    {
        ++nc;
    }
    printf("%ld\n",nc);
    return 0;
}
运行结果及报错内容

循环跳不出来,没有办法打印出来nc的值。
主要想知道这个程序是不是有问题,所以才打印不出来最终的结果。如果程序没错,那么为什么会出现死循环的。按照常理来讲,它到了结尾处就能跳出循环呀

结束循环应该输入ctrl+d吧

感谢,Linux系统是Ctrl+d,window系统是ctrl+z