我们如何终止这个C代码?

时间:2013-02-16 08:39:38

标签: c eof

此c代码来自K& R.它连续运行,即使我输入-1。我在fedora 17中使用eclipse。这段代码有什么问题?怎么会终止?甚至CTRL + D也无法结束它!

#include<stdio.h>
int main(void)
{
    int c;

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

    return 0;
}

4 个答案:

答案 0 :(得分:4)

  

它连续运行,即使我输入-1

在Unix上,您需要输入Ctrl-D来表示文件结束。


正如Mooing Duck指出的那样,this seems to be a bug in Eclipse

答案 1 :(得分:3)

发送EOF角色。

在终端的Linux中使用CTRL-D。

答案 2 :(得分:3)

事实证明这是eclipse IDE的一个问题。在eclipse之外,代码运行正常。 unix的CTRL + D是EOF(内部-1)。 eclipse中有一个解决方法。对于需要EOF的每个应用程序,转到RUN - &gt; RUN CONFIGURATION ... - &gt;在主选项卡中向下滚动并取消选中“将进程输入和输出连接到终端”。 现在运行代码。 CTRL + D应该有效。对于每个应用程序,您必须单独应用此技巧。

答案 3 :(得分:-1)

Mac中的

也是Cmd + D.我非常肯定在Windows中是Windows + D