zoukankan      html  css  js  c++  java
  • C语言丨getch(),getche()和getchar()的区别

    关于C语言中的getch(),getchar() getche()函数肯定十分困扰大家,今天将他们整理和大家一起分享.

    1、getchar()

    函数名:getchar()

    头文件:stdio.h

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

    原  型:int getchar(void);

    例如:

    #include <stdio.h>

    int main(void)

    {

        printf("%c ", getchar());

        return 0;

    }

    当输入一个字符并按回车时,该字符被存入缓冲区中,printf函数再把缓冲区中的该字符输出。如输入输出实例:

    d

    d

    2、getch()

    函数名:getch()

    头文件:conio.h

    功  能:从控制台读取一个字符,但不显示在屏幕上(不带回显)。

    原  型:int getch(void)

    返回值:读取的字符

    例如:

    #include <stdio.h>

    #include <conio.h>

    int main(void)

    {

        printf("%c ", getch());

        return 0;

    }

    输入输出实例:

    d

    输入d,不会显示d,当调用printf函数后才输出d。控制台读取一个字符,但不显示在屏幕上(不带回显)。

    3、getche()

    函数名:getche()

    头文件:conio.h

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

    用  法:int getche(void);

    例如:

    #include

    #include <conio.h>

    int main(void)

    {

        printf("%c ", getche());

        return 0;

    }

    该函数的输入输出示例:

    dd

    也就是说,输入d,直接就输出d,不需要按回车键,即该函数不带缓冲区,且输入有回显。回显的意思就是在控制台显示输入的字符。

    注意: getch()和getche()函数

    这两个函数都是从键盘上读入一个字符。其调用格式为:

    getch();

    getche();

    两者的区别是: getch()函数不将读入的字符回显在显示屏幕上, 而getche()函数却将读入的字符回显到显示屏幕上。利用回显和不回显的特点, 这两个函数经常用于交互输入的过程中完成暂停等功能。


     

    总结

    相同点:

      1.都不需要参数;

      2.功能一致:从输入设备获取一个字符并返回这个字符;

    不同点:

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

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

      3.直观一些:

        #include <stdio.h>

        main()

        {

            int a,b,c;

            a=getchar();

            b=getche();

            c=getch();

         }

          1.执行到getchar()函数时,光标闪动,等待输入字符:输入字符后无变化,需要按回车键, 按回车键后,getchar读取了这个字符,并将其赋值给变量a。

           2.执行到getche()函数时,光标闪动,等待输入字符:输入字符后,不需按回车键,在输入后,getche立即读入并赋值给b。

           3.执行到getch()函数时,光标闪动,等待输入字符:输入字符,并不能看到你输入的字符,屏幕仍是; 但在输入后瞬间,getch()函数就读取并赋值给了c。

    以上就是getchar()、getche()、getch()的区别,如有错误欢迎指出!


     

    如果你想更好的提升你的编程能力,学好C语言C++编程!弯道超车,快人一步!
    C语言C++学习企鹅圈子】,分享(源码、项目实战视频、项目笔记,基础入门教程)
    欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!

    编程学习书籍:


     

    编程学习视频:


     
  • 相关阅读:
    Eclipse 导入项目乱码问题(中文乱码)
    sql中视图视图的作用
    Java基础-super关键字与this关键字
    Android LayoutInflater.inflate(int resource, ViewGroup root, boolean attachToRoot)的参数理解
    Android View和ViewGroup
    工厂方法模式(java 设计模式)
    设计模式(java) 单例模式 单例类
    eclipse乱码解决方法
    No resource found that matches the given name 'Theme.AppCompat.Light 的完美解决方案
    【转】使用 Eclipse 调试 Java 程序的 10 个技巧
  • 原文地址:https://www.cnblogs.com/mu-ge/p/14263852.html
Copyright © 2011-2022 走看看