c - 这里 putchar(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*/

}

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

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

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

最佳答案

当退出循环时,c 的值为 EOF,它不是有效的字符值(这就是它用于指示文件结尾的原因)。将其传递给 putchar 是没有意义的。

关于c - 这里 putchar(c) 的值是多少 '_' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18648112/

相关文章:

c++ - AVR - 中断 vector 和全局变量

无法弄清楚我的 switch 语法有什么问题

c - 为什么 printf 需要强制参数?

c - 为什么 printf 说明符 "%s"一次打印多个变量?

c - 仅使用一个整数和 putchar 打印出 2 位数字

c - getchar() 和 putchar() 函数背后的理论

C编程: Linear Search with Struct

C - 一次读取单个 int

c++ - 使用 snprintf() 的 Fencepost 条件和可移植性?

c++ - 为什么这种使用 putchar_unlocked 的方法打印字符串比 printf 和 cout 慢?