查看原文
其他

getchar()、getche()、getch()的区别?

正念君 嵌入式大杂烩 2021-01-31

全文共1094个字,阅读本文预计需要:3分钟


今天来讨论一下字符输入函数:getchar()、getche()、getch()的区别。

1、getchar()函数

所在头文件:stdio.h

函数原型: int getchar(void);

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

看一段代码:

#include <stdio.h>

int main(void)
{
   printf("%c\n", getchar());

   return 0;
}

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

d
d


2、getche()函数

所在头文件:conio.h

函数原型:int getche(void);

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

看一段代码:

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

   return 0;
}

该函数的输入输出示例:

dd

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


3、getch()函数

所在头文件:conio.h

函数原型:int getch(void);

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

看一段代码:

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

   return 0;
}

输入输出实例:

d

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

此外,还需要注意的一个问题是:conio.h这个头文件是windows平台下特有的,其他平台如Linux、Mac OS等平台是没有的,所以使用getch()函数与getche()函数应该注意平台的问题。

以上就是关于getchar()、getche()、getch()的总结,希望能对大家有帮助!


历史文章精选:

01 二维数组作为函数参数

02 小学生都在使用手机学习编程了,你还在吃鸡打王者?

03 别用Visua C++6.0来开发C程序了,用……

04 使用Notepad++来开发C程序

05 关于main()

06 一份通俗易懂的C语言内存总结

07 数组问题:a与&a有什么不同

08 C语言函数参数压栈的顺序是?

09 getchar()、getche()、getch()的区别?

10 【校招编程01】级数求和

11 【校招编程02】优雅的点

12 【校招编程03】整数翻转

13 【校招编程04】懂二进制


每日一句

 无论在哪里,无论对谁,请尽量保持礼貌。就像看电影时开成静音,对服务员说声谢谢,朋友输密码时转过身去,出门的时候关门声小一点,情绪上来了也不要吼对方。温柔的人未来会怎么样我不知道,但一定不会差。——卢思浩 


我是肥胖的正念君

觉得正念君很胖的话

就来给我点个赞吧

↓     ↓     ↓     ↓     ↓     ↓


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存