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编辑过]
----------------解决方案--------------------------------------------------------
你这写的是什么啊 while(c!="$")
是这样吗? "S"
----------------解决方案--------------------------------------------------------
正在迷糊
----------------解决方案--------------------------------------------------------
就没有看懂楼主是什么意思,但是我没有发现新的问题!
----------------解决方案--------------------------------------------------------
这觉得这个问题比较有意思呀,有启发意义!
----------------解决方案--------------------------------------------------------
那么问题来了,在循环体中也有一个getchar(),为什么在putchar时没有执行getchar()呢?
你怎么看出来的?
[此贴子已经被作者于2006-4-10 22:15:42编辑过]
----------------解决方案--------------------------------------------------------
getchar一次只能接收一个字符,这个地球人都知道,但请大家看下面
void main()
{
char c;
c=getchar();
while(c!="$")
{
putchar(c);
c=getchar();
}
}
运行:abcdefg(输入)
abcdefg (显示)
好了,那么我们可以肯定这个是putchar这个家伙所为
那么问题来了,在循环体中也有一个getchar(),为什么在putchar时没有执行getchar()呢?//这个没有执行??谁说的?你输入完abcdefg不是打了个回车么?被它吃了.......
所以我猜getchar的工作原理是这样的,首选会监察C语言运行时的某个特定的缓冲区(在那里?我也不知道),如果在缓冲区里有字符,则取出,并移动指针,如果没有,则会转向标准输入设备,比如键盘。
后来我又做了下这样的实验:
abcdefg(输入)
abcdefg (显示)
123456$(输入)
123456(显示)
注意哦,我这是这一次执行的,在显示完abcdefg后缓冲区空了,我又输入了123456$
写得比较乱,而且有些问题也是猜的,不知道是不是这样的,希望有个达人来帮我看看,我现在特想知道,到底有没有那个“特定的缓冲区”,存在
除了发现楼主有话有问题外....没发现什么其它问题.............鉴定完毕...........无意义贴
----------------解决方案--------------------------------------------------------
就是能能输入一个字符串
直到回车为止 !!!!!!!
----------------解决方案--------------------------------------------------------
1.stream
C程序会打开三个stream, stdout stdin stderr
2.getchar只会在遇到newline后去stdin取字符,这就是所谓的行缓冲
3,i/o函数有两种,缓冲与非缓冲(UNIX C i/o)
----------------解决方案--------------------------------------------------------
你们到底在研究什么呀,?
不是很简单的吗?
----------------解决方案--------------------------------------------------------