当我运行此代码时,它会打印dos 0字符(空格)一次,放置一个空格并打印dos 1字符(带有白色眼睛和嘴巴的笑脸)。 http://prnt.sc/e2w6bk
int c = 0, b = 1;
printf("%c %c", c, b);
但是当我在下面运行此代码时,结果将被打印两次。我得到2个空格或2个笑脸。 http://prnt.sc/e2w6mt
while(c != -1)
{
c = (getchar() != EOF);
putchar(c);
}
编辑:我的代码将每个输入的字符转换为ascii 0或1(我想这样做以检查c可以在此代码中采用的值)。如果你想要c取你给它的角色那么你应该使用
while((c = getchar()) != EOF)
使用它将保持\ n为\ n。
答案 0 :(得分:1)
你的问题是'\ n'字符不等于EOF。 '\ n'作为第二个字符被读入。