【发布时间】:2011-07-15 01:12:50
【问题描述】:
#include <stdio.h>
// copy input to output
// my version
int main()
{
int c;
printf("\n\nUse CONTROL + D to terminate this program\n\n");
while ((c = getchar()) != EOF) {
putchar(c);
}
if ((c = getchar()) == EOF) {
printf("\n\nProgram TERMINATED\n\n");
}
return 0;
}
当我输入 control + D 时,if 语句的主体运行。这就是我想要的,但是当我更彻底地分析代码时,由于if 的条件是(c = getchar()) == EOF,它不应该再次要求我输入吗?
【问题讨论】:
-
为什么是
int而不是char? -
@alex: 因为
getchar返回一个int(实际上是一个unsigned char转换为int,或EOF- 根据定义,它是一个负数)。
标签: c