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