当前位置: 代码迷 >> C语言 >> 大家帮我看看这句简单c语言,结果想不通阿~
  详细解决方案

大家帮我看看这句简单c语言,结果想不通阿~

热度:280   发布时间:2008-03-30 16:11:30.0
回复 9# 的帖子
呵呵,没什么啦~~这程序本是一道选择题,有点难为人的意思,可我现在还是想不通,如果只输入小于6个数的字符,却又会进行循环,直到总共输完6个字符为止。可getchar()和putchar()不是仅限一个字符吗?怎么会没有循环而一次性输入输出呢??
----------------解决方案--------------------------------------------------------
书上说是按Enter键后将数据送入内存缓冲区的,大概是在第一个getchar()后要有Enter才将数据一起送入内存缓冲区,再执行putchar(),然后循环从内存缓冲区读数据然后输出的吧,这是我的理解,不知道对不对
----------------解决方案--------------------------------------------------------
getchar()缓冲回显,LZ一次输入N个字符,按下ENTER后,getchar()才从缓冲区一个一个读取,读够6个就会退出。
论坛中有相应的贴子

[[it] 本帖最后由 now 于 2008-3-30 22:22 编辑 [/it]]
----------------解决方案--------------------------------------------------------
你输入一个字符回一次车不就够了
----------------解决方案--------------------------------------------------------
不过回车也算一个字符  最好将回车的情况用if语句舍去
----------------解决方案--------------------------------------------------------
回复 13# 的帖子
终于明白了~~谢谢13楼。。
----------------解决方案--------------------------------------------------------
这样可能是你的意思
#include "stdio.h"
void main()
{
int i;char c;
for(i=0;i<=5;i++)
{
  c=getche();
  putchar(c);
}
getch();
}
----------------解决方案--------------------------------------------------------
  相关解决方案