小编Fak*_*Mod的帖子

为什么在这种情况下 return 0 不起作用?

最近,我从开始学习C C程序设计语言布莱恩·柯林汉丹尼斯·里奇。在那本书中,有一个完整的小节(1.5.1,第 2 版),作者在其中创建了一个文件复制程序(但我将其用作文本(由用户输入)复制程序)。他们的代码基本上是这样的

#include <stdio.h>

int main()

{
    int c;
    c = getchar();

    while (c != EOF) {
        putchar(c);
        c = getchar();
    }
}
Run Code Online (Sandbox Code Playgroud)

这段代码在运行时工作正常,但程序永远不会停止。该程序一直在等待输入并继续复制它们,无休止地,永不终止。现在我想创建一个程序,使这种无休止的复制终止。为此,我稍微调整了代码。这是我的代码

#include <stdio.h>

int main()

{
    int c;
    c = getchar();

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

    return 0;

}
Run Code Online (Sandbox Code Playgroud)

我认为return 0;在最后明确写入可能会完成这项工作,但似乎输出根本没有改变。我还尝试使用 if-else 条件并按如下方式循环它们

#include <stdio.h>

int main()

{
    int c;
    c = getchar();

    while (1) {

        if (c != EOF){
            putchar(c);
            c = …
Run Code Online (Sandbox Code Playgroud)

c loops return infinite-loop while-loop

-2
推荐指数
1
解决办法
128
查看次数

标签 统计

c ×1

infinite-loop ×1

loops ×1

return ×1

while-loop ×1