当我运行此代码时,它将一次打印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] 删除。
我来说两句