fishyu123 发表于 2020-11-3 10:38:09

C程序设计语言-练习1-6,问题求助

实验很简单,即验证 getchar() != EOF的值为多少

以下是验证程序的代码
#include <stdio.h>

int main(void)
{
      int ch;
      while(ch = getchar() != EOF)
                printf("%d",ch);

                printf("%d",ch);
      return 0;
}

输入与对应的实验现象如下
         输入             输出
1.      11\n            111
2.      ctrl+z             0
3.      1和ctrl+z      11    (循环继续)


不能理解的是第三次输入,我理解第三次输出应该为10并结束循环程序,但为什么结果是11呢。再次尝试输入,发现ctrl+z必须紧跟在新行开头并且在换行符前才能结束循环程序。不理解为什么。

sunrise085 发表于 2020-11-3 10:38:10

看看这个帖子

fishyu123 发表于 2020-11-3 10:46:04

下次注意
页: [1]
查看完整版本: C程序设计语言-练习1-6,问题求助