LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 871|回复: 2

About getchar() ? ? ?

[复制链接]
发表于 2005-11-22 10:44:44 | 显示全部楼层 |阅读模式
main()
{
     printf("you input is [%c].\n",getchar());
}
main()
{
  for(;;)
     printf("you input is [%c].\n",getchar());
}
运行程序,如果输入: abc
第一个输出:
you input is [a].
第二个输出:
you input is [a].
you input is .
you input is [c].
you input is [
].

第一个输出没多大问题,第二个为什么输出[a].后没有停下来再让输入,而是连续
输出4个字符(还包括换行符,从输出的结果可看出)后才停下来?getchar()为什么
没有只接受a而忽略其后的字符呢?
发表于 2005-11-22 10:56:31 | 显示全部楼层
这是因为标准输入默认是line buffer的。getchar()依次读取一个字符。循环打印时候打印的是abc\n四个字符。还记得C语言教材里面把每个getchar()来的字符putchar()就实现了拷贝程序吧?如果想即时的不用回车马上读入一个字符处理的话。先include<cureses.h>,在用getch吧!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-11-23 21:43:34 | 显示全部楼层
Thanks
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表