【发布时间】:2013-11-26 00:11:18
【问题描述】:
所以我刚刚开始学习 C,如果这有什么不同,我会使用 gcc,并且由于某种原因,这个简单的程序给了我奇怪的输出:
#include <stdio.h>
main()
{
int c;
while (c == getchar() != EOF)
{
putchar(c);
}
}
我保存它并使用 :!gcc % 然后在 vim 中使用 :!./a.out,当我输入任何字母然后 Enter 时,它只会给我“^^”作为输出。我四处寻找,找不到其他人有这个问题,它是直接从 K&R 复制的,所以我不知道是什么导致了这个错误,有人知道发生了什么吗?
【问题讨论】:
-
你确定是
while ((c == getchar()) != EOF)而不是while ((c = getchar()) != EOF)? -
不,你是对的,我在这里重新输入错了,但我在原程序中输入正确,我将编辑原帖
-
你现在拥有的东西无法编译。
-
他在c之前多了一个括号
-
OTOH,添加了缺少的
),==修复了它确实编译,并按宣传的那样工作。看不到^,除非我输入一个。 (然后我又看到了另一个——仍然“像宣传的那样”。)
标签: c gcc output getchar putchar