标题:简单的C问题
只看楼主
caiyakang
Rank: 2
等 级:新手上路
威 望:5
帖 子:2111
专家分:0
注 册:2005-3-24
 问题点数:0 回复次数:6 
简单的C问题
#include <stdio.h>
main()
{char c;
for(;(c=getchar())!='\n';)putchar(c);
putchar('\n');
}



c=getchar()只能得到一个字符,为什么上面的运行,我输入2个,他还是输出2个啊,
搜索更多相关主题的帖子: getchar putchar main include stdio 
2005-08-13 11:23
84009030
Rank: 1
等 级:新手上路
帖 子:191
专家分:0
注 册:2005-5-19
得分:0 
因为你使用循环

#include <stdio.h>
main()
{char c;
if((c=getchar())!='\n')
putchar(c);
putchar('\n');
}

/* HELLO.C -- Hello, jat chan */ #include \"stdio.h\" #include \"conio.h\" main() { printf(\"Hello, jat chan\\n\"); getch(); }
2005-08-13 13:37
caiyakang
Rank: 2
等 级:新手上路
威 望:5
帖 子:2111
专家分:0
注 册:2005-3-24
得分:0 
我是一口气输2个字,GETCHAR()只能得到一个。

中国人的财富网:http://www..cn/
2005-08-13 13:39
84009030
Rank: 1
等 级:新手上路
帖 子:191
专家分:0
注 册:2005-5-19
得分:0 
这样就不会输出两个

/* HELLO.C -- Hello, jat chan */ #include \"stdio.h\" #include \"conio.h\" main() { printf(\"Hello, jat chan\\n\"); getch(); }
2005-08-13 13:39
caiyakang
Rank: 2
等 级:新手上路
威 望:5
帖 子:2111
专家分:0
注 册:2005-3-24
得分:0 
想不明白,GETCHAR()不是只能存一个字符吗,
就算我们输2个也只读入一个到内存中吧,我是这样理解的啊。

中国人的财富网:http://www..cn/
2005-08-13 13:42
84009030
Rank: 1
等 级:新手上路
帖 子:191
专家分:0
注 册:2005-5-19
得分:0 
输入回车后数据送到内存缓冲区,然后每次从缓冲区读入一个字符,再输出

/* HELLO.C -- Hello, jat chan */ #include \"stdio.h\" #include \"conio.h\" main() { printf(\"Hello, jat chan\\n\"); getch(); }
2005-08-13 13:47
swk6100
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2005-8-11
得分:0 

楼主说得对啊,你也没有错c=getchar()每次调用只可以读取一个字符,

但是你用了循环语句啊,结束循环是要有回车,在你回车之前有多少个字符,它就调用多少次getchar()这个函数啊,

所以你在回车之前输入N个字符,它就读入N个啦


2005-08-13 16:18



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-25036-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.271451 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved