1. 要求: 验证表达式getchar() != EOF的值是0还是1

2. 分析.

1. getchar()是获取一个输入字符, 判断是否为输入结尾, 结尾特定EOF(End of File)

2. Linux中,在新的一行的开头,按下Ctrl-D,就代表EOF(如果在一行的中间按下Ctrl-D,则表示输出"标准输入"的缓存区,所以这时必须按两次Ctrl-D);Windows中,Ctrl-Z表示EOF。(顺便提一句,Linux中按下Ctrl-Z,表示将该进程中断,在后台挂起,用fg命令可以重新切回到前台;按下Ctrl-C表示终止该进程。)

3. 代码

1. 注意a = getchare() != EOF与a = (getchar() != EOF)等价, 原因是=是赋值, !=比=的优先级高, 就像四则运算/号的优先级比+号高一样.

2. while的判断到EOF时会中止执行, 里面语句不会执行, 故需要在外部打印getchar() != EOF的值.


#include<stdio.h>
int main(){
    int a ;
    while(a = (getchar() != EOF)){
        printf("%d\n", a);
    }
    printf("%d\n", a);
    return 0;
}