C 为什么这个代码不退出?

C 为什么这个代码不退出?,c,C,可能重复: 我尝试了K&R的例子。我不明白为什么这个代码不退出,除非按下ctrl+c int main ( ) { int c; c = getchar(); while(c!=EOF) { putchar(c); c=getchar(); } } 感谢您的帮助。谢谢 编辑:使用Windows Visual Studio 2010EOF是文件的结尾。若从“键盘”读取,则应将其与等

可能重复:

我尝试了K&R的例子。我不明白为什么这个代码不退出,除非按下ctrl+c

int main ( )
{
    int c; 
    c = getchar(); 
    while(c!=EOF)
        {
            putchar(c);   
            c=getchar();
        }
}
感谢您的帮助。谢谢


编辑:使用Windows Visual Studio 2010

EOF是文件的结尾。若从“键盘”读取,则应将其与等于按回车键的行尾符号进行比较

int main ( )
{
    int c; 
    c = getchar(); 
    while(c!= '\n')
    {
        putchar(c);   
        c=getchar();
    }
}

在Windows中,您可以通过按Ctrl+Z从标准输入流生成文件结尾。根据缓冲行为,您可能还需要按Return。

在哪个系统上尝试此操作?窗户?Unix?Linux?如何输入EOF?通常在linux框上按Ctrl+D+1简洁、整洁、正确。@BigMike谢谢,虽然不太正确,但无法读懂原始海报的意思:OP询问如何捕获EOF,而不是\n,因此这是IMHO的正确答案。如果在管道中使用该程序,则将EOF上的测试更改为EOF上的测试只会破坏它。我认为这更易于在代码中使用。谢谢对不起,ctrl+c应该在那里
On Windows machine ctrl+c acts as delimiter of character scanning same as EOF 
on this loop gets broken otherwise it will keep looking for characters