单片机C语言编程实践
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

3.3 单个字符的输入、输出

所谓输入、输出是以计算机为主体而言的,输入是由外部输入设备如键盘将数据送到计算机内部,输出是将计算机内部的数据送到外部输出设备如显示器、数码管进行显示。

由于输入、输出设备千差万别,所以C语言没有提供输入、输出语句,而是通过调用库函数来实现的,其好处是便于修改,以适应不同计算机的需求。

目前,所有C语言都提供标准输入、输出库函数,最常用的有以下4种。

① putchar(输出字符);

② getchar(输入字符);

③ printf(格式输出);

④ scanf(格式输入)。

在调用C语言库函数时,要用预处理命令“#include”将有关“头文件”包含到用户源程序文件中来,在“头文件”中包含了与调用的函数有关的信息。在调用标准输入、输出库函数时,要用到“stdio.h”头文件,在程序的开头应有以下预处理命令。

      #include <stdio.h>            // 按默认的方式查找
      或#include "stdio.h"         // 先在主源程序目录下查找,如没有,再按默认的方式查找

考虑到printf、scanf函数的频繁使用,允许在使用这两个函数时不加预处理命令“#include”。

3.3.1 putchar(字符输出函数)

putchar函数是字符输出函数,其功能是在显示器上输出单个字符,函数调用的格式为:“putchar(ch);”,其中ch可以是一个字符变量或常量,也可以是一个转义字符。putchar函数只能用于单个字符的输出,且一次只能输出一个字符。另外,若调用putchar函数,需在程序的开头加上编译预处理命令“#include "stdio.h"”。

例如:

      putchar('A');             // 输出大写字母A
      putchar(x);               // 输出字符变量x的值
      putchar('\n');             // 执行“换行”控制功能,不在屏幕上显示

【例3-1】

      #include "stdio.h"         /* 文件包含命令*/
      main()
      { char ch1='N', ch2='E', ch3='W';
        putchar(ch1);           putchar(ch2);
        putchar(ch3);           putchar('\n');
        putchar(ch1-1);         putchar('\n');
        putchar(ch2='E'+1);      putchar('\n');
        putchar('\101');        putchar('\n');
      }

程序运行结果如图3-1所示。

图3-1 程序运行结果

C51编译器提供了putchar函数的源程序,通过串行口输出数据,可根据需要进行修改,printf格式输出函数是调用此函数输出字符的。

3.3.2 getchar(键盘输入函数)

getchar函数的功能是从键盘上输入一个字符(数字也作为字符),其一般形式为:“getchar();”,通常把输入的字符赋予一个字符变量,构成赋值语句。

【例3-2】

      #include<stdio.h>                /* 文件包含*/
      main()
      { char ch;
        printf("Please input a character: ");
        ch=getchar();                   /* 输入1个字符并赋给ch */
        printf("\n");
        putchar(ch);                    /* 输出一个字符*/
      }

程序运行结果如图3-2所示。

图3-2 程序运行结果

程序执行到getchar函数时,就等待用户按键,当完成按键后就在屏幕上显示该按键字符(单步运行时不显示),程序继续执行。

getchar函数只能用于单个字符的输入,一次输入一个字符,程序中要使用getchar函数,必须在程序的开头加上编译预处理命令:“#include<stdio.h>”。

getchar函数执行时需调用putchar函数和_getkey函数,同putchar函数一样,C51编译器也提供了_getkey函数的源程序,通过串行口输入数据,可根据需要进行修改,scanf格式输入函数是调用getchar函数输入字符的。