6.2.2 getchar函数
函数getchar的功能是在键盘上输入一个字符并读取字符的值,其具体使用格式如下所示。
getchar();
在日常应用中,通常把输入的字符赋值给一个字符变量,构成赋值语句,例如下面的代码。
char char1; char1=getchar(); //输入字符并把输入的字符赋值给一个字符变量 putchar(char1); //输出字符
在具体使用函数getchar时,应该注意如下4点。
(1)getchar函数只能接受单个字符,输入的数字也按字符来处理。当输入多个字符时,只接收第1个字符。
(2)使用getchar函数前程序中必须包含文件“stdio.h”。
(3)在Tuber C屏幕下运行含本函数的程序时,将退出Tuber C屏幕进入用户屏幕等待用户输入。输入完毕再返回Tuber C屏幕。
(4)程序的最后两行可以用下面的任意一行来代替。
putchar(getchar()); printf("%c", getchar());
函数getchar有一个整型返回值。当程序调用getchar后,程序会一直等候用户按键输入。用户输入的字符存储在键盘缓冲区中,直到用户按Enter键为止(回车字符也放在缓冲区中)。当用户按Enter键之后,getchar才开始从stdin流中读入字符,每次一个。getchar函数的返回值是用户输入的第1个字符的ASCII码,如出错则返回-1,且将用户输入的字符回显到屏幕上。如用户在按Enter键之前输入了多字符,则其他字符会保留在键盘缓存区中,等待后续getchar函数调用读取。也就是说,后续的getchar调用不会等待用户按键,而直接读取缓冲区中的字符,直到缓冲区中的字符读完为后才等待用户按键。
实例6-2
使用getchar函数让用户从键盘上输入一个字符,然后输出输入的字符
源码路径daima\6\6-2
本实例的实现文件为“getchar.c”,具体实现代码如下。
#include<stdio.h> int main(void){ char char1; //声明变量 //提示用户输入一个字符 printf("input a character\n"); char1=getchar(); //接收字符 putchar(char1); //输出字符 }
拓展范例及视频二维码
范例6-2-01:使用getchar函数获取计算结果
源码路径:演练范例\6-2-01\
![](https://epubservercos.yuewen.com/60FE48/16568261605808006/epubprivate/OEBPS/Images/figure_0090_0001.jpg?sign=1738955183-8xcHGNTDQsqYzj9sthpY5KpShosY3xcB-0-a3bd84d6bb7eba426de64492e07e2ad0)
范例6-2-02:使用getchar函数获取数值型常量
源码路径:演练范例\6-2-02\
![](https://epubservercos.yuewen.com/60FE48/16568261605808006/epubprivate/OEBPS/Images/figure_0090_0002.jpg?sign=1738955183-Z61pubFLukeNg0WC8MLEU6X19Cr2FUOC-0-fc94a9f4b2f089f5fd13446aa16bd773)
上述代码的具体实现流程如下所示。
(1)定义1个字符型变量char1。
(2)通过printf输出提示,让用户输入一个字符。
(3)通过getchar()获取用户输入的字符。
(4)通过putchar(c)输出用户输入的字符。
运行上述代码后在屏幕中将提示用户输入一个字符,例如输入字符m,按下Enter键后将在界面中显示刚刚输入的字符m,如图6-3所示。
![](https://epubservercos.yuewen.com/60FE48/16568261605808006/epubprivate/OEBPS/Images/figure_0090_0003.jpg?sign=1738955183-tScClWEQhIbuAtdk2bLPQgC5LOiBfFw4-0-9eb894803354e035f9fdae1bc57ab6a3)
图6-3 输出结果
在上述代码中,使用getchar函数可让用户从键盘中输入一个字符,然后输出输入的字符。实际上getch与getchar的基本功能相同,唯一差别是getch直接从键盘上获取键值,不等待用户按Enter键,只要用户按任意一个键getch就立刻返回。getch返回值是用户输入的ASCII码,若出错则返回-1,输入的字符不会回显在屏幕上。getch函数常用于程序调试中,在调试时,在关键位置显示有关的结果以待查看,然后用getch函数暂停程序运行,当按任意键后程序继续运行。