#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;
}
获取输入当我进入控制 + d,该if
语句运行的机构。这就是我想要的,但是当我更彻底地分析代码时,不应该再次询问我的输入,因为if
的条件是(c = getchar()) == EOF
?在if条件
为什么'int'而不是'char'? – alex
@alex:因为'getchar'返回一个'int'(实际上是一个'unsigned char'转换为'int'或者'EOF' - 根据定义它是一个负数)。 – jweyrich