【问题标题】:How do we terminate this C code?我们如何终止这个 C 代码?
【发布时间】:2013-02-16 08:39:38
【问题描述】:

此 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;
}

【问题讨论】:

标签: c eof


【解决方案1】:

它一直在运行,即使我输入 -1

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


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

【讨论】:

  • 我试过了。但它在eclipse IDE中不起作用。但在 Eclipse 之外,在终端窗口中,CTRL + D 工作正常!现在整理好了。
  • @MooingDuck 谢谢 :-)
【解决方案2】:

发送 EOF 字符。

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

【解决方案3】:

原来是eclipse IDE的问题。在 Eclipse 之外,代码运行良好。 unix 的 CTRL+D 是 EOF(内部为 -1)。 eclipse中有一个解决方法。对于每个需要 EOF 的应用程序,转到 RUN --> RUN CONFIGURATION... --> 在主选项卡中向下滚动并取消选中“将进程输入和输出连接到终端”。 现在运行代码。 CTRL+D 应该可以工作。对于每个应用程序,您必须分别应用此技巧。

【讨论】:

    【解决方案4】:

    在 Mac 中也是 Cmd + D。我很确定在 Windows 中是 Windows + D

    猜你喜欢
    • 2018-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-19
    相关资源
    最近更新 更多