c = getchar()!= EOF; 打印0或1

麦可

当我运行此代码时,它将一次打印dos 0字符(空格),放置一个空格并打印dos 1字符(带有白色眼睛和嘴巴的笑脸)。

在此处输入图片说明

int c = 0, b = 1;
printf("%c %c", c, b);

但是,当我在下面运行此代码时,结果将被打印两次。我要么得到2个空格,要么得到2个笑脸。

在此处输入图片说明

while(c != -1)
{
    c = getchar() != EOF;
    putchar(c);
}

编辑:我的代码没有括号,因此它将每个输入的字符与EOF进行比较,并将结果(0或1)分配给c,然后将c打印为字符。为了防止这种情况,我们可以使用括号来强制程序先执行c = getchar(),然后将该值与EOF进行比较。

while((c = getchar()) != EOF)
奥丁

您的问题是'\ n'字符不等于EOF。正在读取“ \ n”作为第二个字符。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章