在getchar,putchar语句中遇到的问题

img

img


为什么最后会打印两个”It isn't EOF"
我只有一个printf语句,难道不应该只有一个吗。

因为你输入的是a,回车
而代码里getchar每次只会读入一个字符
缓冲区里有2个字符,它当然会循环走两次

vs好像要输入几次ctrl+z并回车才是EOF

第二个输出对应的是输入的回车符

这么改:

#include <stdio.h>
int main()
{
    int  a;
    while ((a=getchar()) != EOF){
        getchar();
        putchar(a);
        printf("It isn't EOF\n");
    }
    return 0;
}

还有个回车吧?是不是也打印出来了

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^