免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1609 | 回复: 1
打印 上一主题 下一主题

[C] 问一个关于getchar输出的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-03-26 10:16 |只看该作者 |倒序浏览

  1.   1 #include <stdio.h>
  2.   2
  3.   3 static int a = 6;
  4.   4
  5.   5 void pri()
  6.   6 {
  7.   7         printf ("pri a = %d\n",a);
  8.   8         a = 9;
  9.   9         a = getchar();
  10. 10         putchar(a);
  11. 11         putchar('\n');
  12. 12         printf("printf a9 = %d", a);                    
  13. 13 }
  14. 14
  15. 15 int main()
  16. 16 {
  17. 17         int c =89;
  18. 18         printf("printf a6 = %d\n", a);
  19. 19         a = 8;
  20. 20         a = 10;
  21. 21         putchar(a);
  22. 22         printf("printf a8 = %d\n", a);
  23. 23         putchar(a);
  24. 24         a = 3;
  25. 25         putchar(a);
  26. 26         pri();
  27. 27         c = getchar();    // 这里的getchar并不停下来,不知道是为什么?
  28. 28         putchar(c);      
  29. 29         return 0;
  30. 30 }
  31. 31
  32. ~                                                                              
  33. ~                  
复制代码

论坛徽章:
0
2 [报告]
发表于 2008-03-26 10:36 |只看该作者
第9行a = getchar();会向输入缓冲区放两个字符,一个是你想要的,另一个是'\n'。所以27行getchar()读取的是'\n'

如果输入缓冲区不空,getchar()会从输入缓冲区读取一个字节,只有输入缓冲区为空时才会等待输入。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP