1、第三讲 输入输出函数 Printf()函数 Scanf()函数 Getchar()函数 Putchar()函数 一.格式输出函数printf() 前面的任务中我们已数次使用过这个函数。printf函数也称为格式输出函数,其核心字最后一个字母f即为“格式”(format)的意思。 1.printf函数一般形式 格式: printf(“格式控制字符串”,输出项1,输出项2,……输出项n); 功效:按指定的格式把输出列表中的数据显示到显示器屏幕上。 其中,格式控制字符串用于指定输出格式。格式控制字符串可由格式字符串和一般字符串两种组成。格式字符串是以%号开头的字符串,在%号背
2、面跟有各种格式字符,用来阐明输出数据的类型、形式、长度、小数位数等。
例如:“%d”表示按十进制整型输出;
“%ld”表示按十进制长整型输出;
“%c”表示按字符型输出等。
一般字符串在输出时按原样输出,在显示中起提示作用。输出列表中给出了各个输出项,要求格式字符串和各输出项在个数和类型上应一一对应。
例2.3有一矩形,长度为a,宽度为b,求矩形的面积s。
#include
3、则程序的运行成果是: a=3.26,b=5.68,s= 18.52 2.格式字符串 表2-3 printf函数格式字符串完整格式及含义 % - 0 m.n l或h 格式字符 格式字符串的起始标志,是必选项。 指定左对齐输出 指定空位填0 m指定输出的域宽,即总长度。 n 指定输出数据的精度。 输出长度的修正 指定输出类型,是必选项 阐明:(1)两头的项为必选项,中间为可选项,m,n为正整数。 (2)格式字符和含义阐明如表所示: 表2-4 格式字符意义 格式字符 意 义 d 以十进制形式输出带符号整数(正数不输出符号) o 以八进制形式
4、输出无符号整数(不输出前缀0),#o输出前缀0 x,X 以十六进制形式输出无符号整数(不输出前缀Ox),#ox输出0x u 以十进制形式输出无符号整数 f 以小数形式输出单、双精度实数 e,E 以指数形式输出单、双精度实数 g,G 以%f或%e中较短的输出宽度输出单、双精度实数 c 输出单个字符 s 输出字符串 (3)输出域宽m:用十进制整数来表示输出的最少位数。若实际位数多于定义的宽度,则按实际位数输出,若实际位数少于定义的宽度则补以空格或0。 (4)精度n:精度格式符以“.”开头,后跟十进制整数。本项的意义是:假如输出数字,则表示小数的位数;假如输出的是字符
5、则表示输出字符的个数;若实际位数不小于所定义的精度数,则截去超出的部分。
(5)长度:长度格式符为h和l两种,h表示按短整型量输出,l表示按长整型量输出。
例2.4 格式字符应用举例。
#include
6、lf,%f,%8.4lf\n",c,c,c); printf("d=%c,%8c\n",d,d); } 其输出成果为: 注意提示: 1. %和格式符之间能够加其他修饰符。加*时作为指定域宽。27页例 2. 格式控制符的前后能够加其他字符,不过它们原样输出,一般是为了好辨别意义。只有格式控制符和转义字符不是原样输出。 3. 格式控制符与输出列表个数要相等。类型要一致。 4. 两个%的情况,多个%的情况。%%%d,%.%%%d,a.%.%%f 5. 输出项列表尽也许明确简单。最佳不要用++,--体现式。27页例 二. 格式输入函数scanf() 1.s
7、canf函数一般形式
格式: scanf(“格式控制字符串”,地址列表);
功效:按指定的格式参数的要求,从终端上把数据传送到地址参数指定的内存空间中。
其中,格式控制字符串的作用与printf函数相同,但不能显示非格式字符串,也就是不能显示提示字符串。地址表列中的地址是通过对变量名“求地址”运算得到的,即地址运算符“&”后跟变量名。
例如:&a, &b,分别表示变量a和变量b 的地址。
例2.5 键盘输入三个整型数据并输出。
#include
8、信息 scanf("%d%d%d",&a,&b,&c); //输入三个整型数据 printf("a=%d,b=%d,c=%d",a,b,c); //输出三个整型数据 } 在本例中,因为scanf函数自身不能显示提示串,故先用printf语句在屏幕上输出提示,请用户输入a、b、c的值。在输入数据时需要输入有效间隔符,即一个或多个空格或回车键作为相邻输入数值之间的间隔。 例如:7 8 9 或 7 8 9 运行成果为:a=7,b=8,c=9 2.格式修饰字符串 表2-5 scanf函数格式字符串的完整格式及含义 % *
9、 m l或h 格式字符 格式字符串的起始标志,是必选项。 赋值抑制字符宽,不能阐明精度 m指定域宽,即总长度。 输出长度的修正如:ld,lf,le 指定输出类型,是必选项 阐明:(1)常见格式字符和意义如表所示: 表2-6格式字符意义 格式字符 字符意义 d 输入十进制整数 o 输入八进制整数 x 输入十六进制整数 u 输入无符号十进制整数 f或e 输入实型数(用小数形式或指数形式) c 输入单个字符 s 输入字符串 提示注意: 1. 输入数据时的分隔标志: 若格式控制串中没有非格式字符(如%d%d%d是紧相连的)作输入数据之间的间隔则
10、可用空格,TAB或回车作间隔。有的话原样输入,作为分隔符。 2. %和格式符之间能够加其他修饰符。加抑制符*时跳过前面的输出项。参考29页例子 3. 格式控制符的前后能够加其他字符,不过要求一一对应的原样输入。参考30页例子。 4. 格式控制符与输出列表个数要相等。否则得不到正确数据,但不一定报错。 5. 实数只能指定数据总宽度,不能指定小数宽度。假如没有输入间隔符但尽也许不要指定宽度,29页例子 6.输入字符数据时,若格式控制串中无非格式字符,则以为所有输入的字符均为有效字符。 例如:scanf("%c%c%c",&a,&b,&c); 输入为:x y z回车 则把‘x'赋予a
11、 ‘ ' 赋予b,‘y'赋予c。
只有当输入为:xyz回车时,才能把‘x'赋于a,‘y'赋予b,’z'赋予c。假如在格式控制中加入空格作为间隔,则输入各字符之间可用空格或回车或TAB作为分隔符。
例2.6 简单的输入输出数据练习。
#include
12、输入三个小写字母,输出其ASCII码和对应的大写字母。
#include
13、ar 函数是字符输出函数, 其功效是在显示器上输出单个字符。
其一般形式为:
putchar(字符变量)
例如:
putchar('A'); (输出大写字母A)
putchar(x); (输出字符变量x的值)
putchar(‘\101’); (也是输出字符A)
putchar('\n'); (换行)
对控制字符则执行控制功效,不在屏幕上显示。
使用本函数前必须要用文献包括命令:
#include
14、从键盘上输入一个字符。
其一般形式为:
getchar();
一般把输入的字符赋予一个字符变量,组成赋值语句,如:
char c;
c=getchar();
【例4.2】输入单个字符。
#include






