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

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

热度:131   发布时间:2008-03-30 14:23:39.0
大家帮我看看这句简单c语言,结果想不通阿~
#include "stdio.h"
void main()
{
int i;char c;
for(i=0;i<=5;i++)
{
  c=getchar();
  putchar(c);
}
getch();
}

按理说应该循环6次输入一个字符,可为什么连续输入一串字符后显前六个,而非显示一个字符让你再次输入,并循环6次呢?反正运行一下后和自己想法不一样,谁能解释一下...
搜索更多相关的解决方案: c语言  结果  void  int  main  

----------------解决方案--------------------------------------------------------
晕,你这个明显有问题嘛
那个getchar();一次只能输入一个字符
你不能一次输入一串字符
putchar();一样,只能一次输出一个字符
这个程序的结果是
循环6次,每次让你输入一个字符,计算机输出一个字符
你输入一串
当然不行了
----------------解决方案--------------------------------------------------------
回复 1# 的帖子
难道会自己输入吗?
你的程序就是从键盘输入6个字符啊,并且输出!!!
用循环控制输入,是避免用6个getchar()和putchar()

!!!理解万岁!!!
----------------解决方案--------------------------------------------------------
补充一点
你那个getch();最好在{}里面的最后面加上,如果你是我刚才那样说的让它那样做
----------------解决方案--------------------------------------------------------
批评3#
这个程序哪是每次输入6个字符啊
是每次输入一个字符
输6次
----------------解决方案--------------------------------------------------------
回2,3楼,你们运行一下,输入一串字符,看看结果是什么...
根本就没有循环,直接显前六个,然后跳出...why???
???
???
----------------解决方案--------------------------------------------------------
恩,好象是每次输一个字符
----------------解决方案--------------------------------------------------------
没有清空内存
楼主:
    你在getchar()语句前面加上一个fflush(stdin)就OK了
----------------解决方案--------------------------------------------------------
回复 6# 的帖子
楼主啊,不要气愤哦!!!
误解是在错难免的啊!!!

不管你输入都少个字符,因为你的循环中相当于只声明了6个变量来存储这些字符,所以只有前6个字符才能被保存下来,其余的根本没有写到内存中,输入时只是保存在内存缓冲里,没有写到内存,没哟地方放!!!!

另外,你可以检验一下,只声明一个变量,看看能不能连续输入多个字符,并且输出,看输出的是什么东西....

!!!Understand is love!!!

[[it] 本帖最后由 Ethip 于 2008-3-30 15:47 编辑 [/it]]
----------------解决方案--------------------------------------------------------
好像连回车也算一个字符啊。8#能不能再讲明白些
----------------解决方案--------------------------------------------------------
  相关解决方案