getchar一次只能接收一个字符,这个地球人都知道,但请大家看下面
void main()
{
char c;
c=getchar();
while(c!="$")
{
putchar(c);
c=getchar();
}
}
运行:abcdefg(输入)
abcdefg (显示)
好了,那么我们可以肯定这个是putchar这个家伙所为
那么问题来了,在循环体中也有一个getchar(),为什么在putchar时没有执行getchar()呢?
所以我猜getchar的工作原理是这样的,首选会监察C语言运行时的某个特定的缓冲区(在那里?我也不知道),如果在缓冲区里有字符,则取出,并移动指针,如果没有,则会转向标准输入设备,比如键盘。
后来我又做了下这样的实验:
abcdefg(输入)
abcdefg (显示)
123456$(输入)
123456(显示)
注意哦,我这是这一次执行的,在显示完abcdefg后缓冲区空了,我又输入了123456$
写得比较乱,而且有些问题也是猜的,不知道是不是这样的,希望有个达人来帮我看看,我现在特想知道,到底有没有那个“特定的缓冲区”,存在
[此贴子已经被作者于2006-4-10 20:54:25编辑过]