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\

范例6-2-02:使用getchar函数获取数值型常量

源码路径:演练范例\6-2-02\

上述代码的具体实现流程如下所示。

(1)定义1个字符型变量char1。

(2)通过printf输出提示,让用户输入一个字符。

(3)通过getchar()获取用户输入的字符。

(4)通过putchar(c)输出用户输入的字符。

运行上述代码后在屏幕中将提示用户输入一个字符,例如输入字符m,按下Enter键后将在界面中显示刚刚输入的字符m,如图6-3所示。

图6-3 输出结果

在上述代码中,使用getchar函数可让用户从键盘中输入一个字符,然后输出输入的字符。实际上getch与getchar的基本功能相同,唯一差别是getch直接从键盘上获取键值,不等待用户按Enter键,只要用户按任意一个键getch就立刻返回。getch返回值是用户输入的ASCII码,若出错则返回-1,输入的字符不会回显在屏幕上。getch函数常用于程序调试中,在调试时,在关键位置显示有关的结果以待查看,然后用getch函数暂停程序运行,当按任意键后程序继续运行。