关于c语言的问题~~请高手帮忙解答~~

在利用getchar()输入字符的时候~~我们经常看到有一个语句就仅仅是getchar(),用来清楚输入的回车键的~~请问,这样做有什么影响??假如没有这样一个清楚回车键的语句~~又会有什么影响??在什么情况下才需要这样的语句??
还有:
#include<stdio.h>
void main()
{
char c;
while((c=getchar())!='\n')
{
putchar(c);
}
}
这一段程序是用来将键盘输入复制到屏幕上~为什么我在putchar(c)前加上getchar()语句后屏幕上输出的是跳格输出的~~即:如果我输入abcdefg,那么屏幕上输出的是aceg,这是为什么??

因为不清除回车的话,他会被程序截到 然后赋给变量

当你输入abcdefg时
字符a赋给了变量c 然后字符b赋给了getchar()
依次
字符c赋给了变量c 然后字符d赋给了getchar()
....
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-08-04
getchar()的作用就是消耗输入中的一个字符,当然就会跳了
因为while循环里已经有了个getchar
另外,getchar这样的“函数”(其实是宏)经常在程序要结束时使用,目的是能看清楚程序输出结果,再按键结束程序
第2个回答  2008-08-04
简单来说 getchar() 是从屏幕输入流中依次读取单字符
所以

读取a -> c
读取b
==>输出a

读取c -> c
读取d
==>输出c

读取e -> c
读取f
==>输出e

读取g -> c
读取回车
==>输出g

继续输入...
第3个回答  2008-08-04
getchar()的作用就是消耗输入中的一个字符,当然就会跳了
因为while循环里已经有了个getchar
另外,getchar这样的“函数”(其实是宏)经常在程序要结束时使用,目的是能看清楚程序输出结果,再按键结束程序
简单来说 getchar() 是从屏幕输入流中依次读取单字符
所以

读取a -> c
读取b
==>输出a

读取c -> c
读取d
==>输出c

读取e -> c
读取f
==>输出e

读取g -> c
读取回车
==>输出g

继续输入...
相似回答
大家正在搜