3

此 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

4 回答 4

4

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

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


正如 Mooing Duck 指出的那样,这似乎是 Eclipse 中的一个错误

于 2013-02-16T08:40:26.907 回答
3

发送 EOF 字符。

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

于 2013-02-16T08:40:49.070 回答
3

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

于 2013-02-17T00:25:19.073 回答
-1

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

于 2013-03-22T23:18:41.270 回答