putchar(c)在这里的值是多少'_';?

putchar(c)在这里的值是多少'_';?,c,printf,putchar,kr-c,C,Printf,Putchar,Kr C,putchar(c)在外循环的值是多少 main() { int c; while (c = getchar() != EOF) { printf("printf c_inloop :%d\n",c); printf("Putchar c_inside: "); putchar(c); printf("\n\n"); } putchar(c); printf("printf c_outloop %d",c); /*outside loop*

putchar(c)在外循环的值是多少

main()
{
  int c;

  while (c = getchar() != EOF) {
    printf("printf c_inloop :%d\n",c);
    printf("Putchar c_inside: ");
    putchar(c);
    printf("\n\n");
  }

  putchar(c);
  printf("printf c_outloop %d",c); /*outside loop*/

}
当我运行程序时,说“th”(wtq)并在cmd(Windows)中按enter键:


注意printf c_outloop 0前的空格。是
putchar(c)
Space的值吗?

退出循环时,
c
的值是
EOF
,它不是有效的字符值(这就是为什么它用于指示文件结束)。将其传递给
putchar

是没有意义的,那么为什么会有这个空间呢?它象征着什么?没什么。这只是一个无意义操作的垃圾结果。值是布尔值,不是吗?对还是错?因为如果我去掉括号,printf_c outside的值就变成了-1,不是EOFW的th值吗?如果你的意思是
c
,它是一个整数。在您的平台上,
EOF
很可能是
-1
。我的意思是c的值是布尔值
th
printf c_inloop :1
Putchar c_inside:(gives me a smileyface emoticon)

printf c_inloop :1
Putchar c_inside:(gives me a smileyface emoticon)

printf c_inloop :1
Putchar c_inside:(gives me a smileyface emoticon)


^Z (Ctrl + Z)
 printf c_outloop 0