我原以为它会产生同样的结果,但由于某种原因它只是没有并显示笑脸。运行普通的 getchar 和 putchar 工作正常,并给出预期的输出。 即使输入单个字符也只会返回一个笑脸。我是 c 和 clion 的新手,所以我很感激您的帮助。
编辑:我找出了问题的原因。 while 循环上的括号没有正确使用。但还是不明白为什么是笑脸?
#include <stdio.h>
int main() {
int c;
while ((c = getchar() != EOF))
putchar(c);
}
解释很简单。
在您的代码中,如果比较
c
只能是 getchar()) != EOF
或 0
,则在将
1
分配给结果时,您总是打印代码为 1 的字符
int main() {
int c;
while ((c = getchar()) != EOF)
putchar(c);
}