为什么这段代码不退出?

时间:2012-09-17 12:04:00

标签: c

  

可能重复:
  EndOfFile in C - EOF

我正在尝试K& R的例子。除非按下ctrl+c,否则我无法理解为什么此代码不会退出。

int main ( )
{
    int c; 
    c = getchar(); 
    while(c!=EOF)
        {
            putchar(c);   
            c=getchar();
        }
}

感谢任何帮助。谢谢!

编辑:使用Windows(Visual Studio 2010)

3 个答案:

答案 0 :(得分:8)

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

答案 1 :(得分:5)

EOF是文件结束。如果您从“键盘”中读取,则应与“行结束符号”进行比较,该符号等于按“返回”

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

答案 2 :(得分:-1)

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