符合if的条件为什么还会执行else

img


求DL解答!
为什么符合if的条件,但是会执行else的内容,不明白。

因为你输入的是a,回车
回车并不是EOF,它也会被当做一个字符处理

你输入a并回车时,缓冲区里缓存的字符是“a\n”。
第一次getchar是a,第二次getchar会获得\n。
除非你在14行加多个getchar()清理掉缓冲区的\n,不然肯定是显示一个正确再显示一个错误。