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函数输入字符的。