getchar函数需要等到回车才开始读数据,那么回显是怎么实现的呢?想了解具体的实现过程
>> 本文固定链接: http://www.vcgood.com/archives/2623
>> 转载请注明: amusementer 2008年08月14日 于 C语言帝国 发表
getchar函数需要等到回车才开始读数据,那么回显是怎么实现的呢?想了解具体的实现过程
>> 本文固定链接: http://www.vcgood.com/archives/2623
>> 转载请注明: amusementer 2008年08月14日 于 C语言帝国 发表
你必须先 登录才能发表评论。
以前解答过这个问题。
在getchar()读取字符的时候,是从stdin的“缓存”中读的。系统在内存确定的位置定义了一个可以存15个键的扩充ASCII码的32个单元的键盘缓冲区。从键盘输入时,键值首先送到键盘缓冲区里,然后系统再从缓冲区里读取键值。
在运行程序的时候,执行到 getchar()时要求输入一次,输入的键(可以不止一个键)的键值和最后输入的回车的键值就被送到键盘缓冲区里,系统从缓冲区提取第一个键值。
如下程序:
#include “stdio.h”
int main()
{
char ch;
ch=getchar();
printf(“%c”,ch);
return 0;
}
输入:whos回车
输出:w
谢谢,又学习了
我知道输入先存放在键盘缓冲区里,当按下回车,getchar才读数据,问题在按回车前,你按下一个键就会在屏幕上显示一个字符,这就是回显吧,是怎么实现的呢?应该属于getchar实现的一个功能吧。