关于c语言getchar getch getche的理解

发布时间 2023-05-21 10:38:37作者: 风中凌乱的猪头

1、getchar 头文件:stdio.h  原型:int getchar(void)返回值?

  功能:读取控制台输入的字符一个,并保存在键盘缓冲区中,直到用户按回车为止(回车字符也放在缓冲区中)

  用于,%c fgets前需要注意

2、getch  头文件conio.h   原型:int getch(void) 返回值:读取的字符?

  功能:从控制台读取一个字符,暂不显示在屏幕上 ;也就是输入字符时,不会显示字符,只有当调用printf函数后才输出d, 不带回显。

  linux下没有这个头文件,man 3 getch也找不到getch

 #include <stdio.h>
 #include <conio.h>
  int main(void)
    {
        printf("%c\n", getch());
        return 0;
    }

  输入d不会显示d,当调用printf函数后才输出d,读取一个字符,但是不显示在屏幕上。

3、getche 头文件 conio.h  原型:int getche(void) 返回值:

  功能:输入后立即从控制台取字符,不以回车为结束,且立即显示在屏幕上,带回显

#include <stdio.h>
 #include <conio.h>
  int main(void)
    {
        printf("%c\n", getche());
        return 0;
    }

输入d,直接就输出d,不需要按回车键,这个函数不带缓冲区,且输入有回显。

4、getch不将读入的字符回显在显示屏幕上,而getche将读入的函数回显到屏幕上,利用回显和不回显的特点,这两个函数经常用于交互输入(目前不懂,可能后期会补)

5、

  1.getchar()先将输入的字符保存在缓冲区,然后再从缓冲区读取这个字符,是间接读取;

  2.getche()和getch()不需要将输入的字符保存在缓冲区,而是即输即取,也就是说,一输入一个字符,它立即直接读取;