首页 > 用户发贴区 > 编程问题提问区 > 请教C语言getchar()函数问题
2008
08-14

请教C语言getchar()函数问题

getchar函数需要等到回车才开始读数据,那么回显是怎么实现的呢?想了解具体的实现过程


请教C语言getchar()函数问题》有 3 条评论

  1. whos 说:

    以前解答过这个问题。

    在getchar()读取字符的时候,是从stdin的“缓存”中读的。系统在内存确定的位置定义了一个可以存15个键的扩充ASCII码的32个单元的键盘缓冲区。从键盘输入时,键值首先送到键盘缓冲区里,然后系统再从缓冲区里读取键值。

    在运行程序的时候,执行到 getchar()时要求输入一次,输入的键(可以不止一个键)的键值和最后输入的回车的键值就被送到键盘缓冲区里,系统从缓冲区提取第一个键值。

    如下程序:

    #include “stdio.h”
    int main()
    {
    char ch;
    ch=getchar();
    printf(“%c”,ch);
    return 0;
    }

    输入:whos回车

    输出:w

  2. xiaolei 说:

    谢谢,又学习了

  3. amusementer 说:

    我知道输入先存放在键盘缓冲区里,当按下回车,getchar才读数据,问题在按回车前,你按下一个键就会在屏幕上显示一个字符,这就是回显吧,是怎么实现的呢?应该属于getchar实现的一个功能吧。

留下一个回复