第3章格式输入输出_第1页
第3章格式输入输出_第2页
第3章格式输入输出_第3页
第3章格式输入输出_第4页
第3章格式输入输出_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第三章第三章 格式化输入格式化输入和输出和输出n一、 字符数据的输入输出n二、 格式化的输入与输出程序程序是数据数据的处理器: 它接收输入数据,对数据进行处理,再将得到数据输出。输出输出:从计算机向外部输出设备(显示器,打印机)输出数据输入输入:从输入设备(键盘,鼠标,扫描仪)向计算机输入数据. 由于各种设备差别很大,C缓冲文件系统把每种设备都转换成称为流(stream)的逻辑设备。 流给程序员提供了与设备无关的一致界面,因此能够用于写入磁盘文件的函数也能用于写入显示器终端。 本章讨论标准的输入和输出函数。也就是认为输入输出函数是从键盘输入,向显示屏输出。 C语言中标准输入输出C语言函数库中有

2、一批“标准输入输出函数标准输入输出函数”,例如: 字符输入函数:getchar() 字符输出函数:putchar() 格式输入函数: scanf() 格式输出函数:printf() 字符串输入函数: gets() 字符串输出函数:puts()使用这些函数时,应在程序的开头处写下预编译命令: # include “stdio.h” 或或 # include 用编译命令“#include”将有关头文件“stdio.h”包括到用户的源文件当中。 一、字符数据的输入输出1. 字符输出函数 putchar( )p函数作用:向终端输出一个字符p一般形式:putchar(c) 输出变量c的值 C可以是字符型

3、变量或整型变量例例1 输出单个字符。输出单个字符。#includevoid main() char a,b,c; a=:;b=);c=*; putchar(a);putchar(b);putchar(c); putchar(n); 运行结果::)*putchar(a);putchar(n);putchar(b);putchar(n);putchar(c);putchar(n);运行结果::)*n也可以输出其他转义字符,例如: putchar(101); (输出字符A) putchar(); (输出单引号字符) putchar(015) (输出回车,不换行,使输出的当前位置移到本行开头) 2.

4、字符输入函数p函数作用:从终端(或系统隐含指定的输入设备)输入一个字符。p没有输入参数,一般形式:getchar()p函数值:从输入设备得到的字符。例例2 输入单个字符。输入单个字符。#includevoid main() char c; c=getchar(); putchar(c); putchar(n);运行程序:运行程序:从键盘输入字符从键盘输入字符* *按按EnterEnter键键屏幕上将显示输出的字符屏幕上将显示输出的字符* * * *也可改写为:putchar(getchar();二、二、 格式化的输入与输出格式化的输入与输出1. printf( )函数(格式输出函数)函数(格式

5、输出函数) 一般格式:一般格式: printf(”格式控制格式控制”,输出列表);输出列表);例如:例如:printf(“a=%d,b=%cn”,a,b)功能:功能:向默认输出设备(一般是显示器)输出向默认输出设备(一般是显示器)输出“输出列表输出列表”中各数据项。中各数据项。 1. 格式控制格式控制也称“控制字符串”,是由双引号括起来指定输出输出格式的字符串格式的字符串。他由格式说明格式说明、控制字符控制字符和普通字符普通字符三部分组成。(1)格式说明)格式说明构成:构成:由“%”字符开始后面跟有各种格式字符。作用:作用:以说明输出数据的类型、形式、长度、小数位等格式。 C语言提供的常用语言

6、提供的常用printf()函数格式说明:()函数格式说明:二、二、 格式化的输入与输出格式化的输入与输出1. printf( )函数(格式输出函数)函数(格式输出函数) n1500 1.5*103 =1.5E+3n0.00001 1*10-5 1E-5(2)控制字符)控制字符控制字符用于控制设备的动作,如下表中制表符“t”、换行符“n”等。 转义字符表示含义n换行,将当前位置移到下一行开头换行,将当前位置移到下一行开头t横向跳格,横向跳到下一个输出区横向跳格,横向跳到下一个输出区r回车,将当前位置移到本行开头回车,将当前位置移到本行开头f走纸换页,将当前位置移到下页开头走纸换页,将当前位置移到

7、下页开头b退格,将当前位置移到前一列退格,将当前位置移到前一列v竖向跳格竖向跳格例如:例如:printf(“x=%dn”,x); 二、二、 格式化的输入与输出格式化的输入与输出1. printf( )函数(格式输出函数)函数(格式输出函数) (3)普通字符)普通字符除格式说明和控制字符之外,其他字符均属除格式说明和控制字符之外,其他字符均属普通字符普通字符,打印,打印时按原样输出。时按原样输出。例如:例如:printf(“x=%d,%c”,12,6*8);其中“x=”和“,”都是普通字符。 输出结果是:输出结果是:x=12,0 二、二、 格式化的输入与输出格式化的输入与输出1. printf(

8、 )函数(格式输出函数)函数(格式输出函数) 2.输出列表输出列表:输出列表:就是需要输出的各数据项表达式,表达式之间用就是需要输出的各数据项表达式,表达式之间用逗号分隔。逗号分隔。 注意:(1 1)表达式可以由变量构成,也可以由常量构成;)表达式可以由变量构成,也可以由常量构成;(2 2)表达式之间的逗号不是逗号表达式,而是确定计算)表达式之间的逗号不是逗号表达式,而是确定计算顺序的分隔符,自右向左进行的计算。顺序的分隔符,自右向左进行的计算。二、二、 格式化的输入与输出格式化的输入与输出1. printf( )函数(格式输出函数)函数(格式输出函数) 3.附加说明符在%与格式字符间插入附加

9、说明符,组成:“% ”输出格式来达到更高输出格式要求。二、二、 格式化的输入与输出格式化的输入与输出1. printf( )函数(格式输出函数)函数(格式输出函数) 附加说明符意 义l用于长整型,可以加在格式符用于长整型,可以加在格式符d、o、x、u的的前面前面m(正整数)(正整数)数据输出的最小宽度,当数据实际宽度超过数据输出的最小宽度,当数据实际宽度超过m时,则按实际宽度输出,如实际宽度短于时,则按实际宽度输出,如实际宽度短于m,则输出时前面补则输出时前面补0或空格。或空格。.n(正整数)(正整数)对实数表示输出对实数表示输出n位小数,对字符串,表示从位小数,对字符串,表示从左截取的字符个

10、数左截取的字符个数-输出的字符或数字在域内向左对齐,默认右输出的字符或数字在域内向左对齐,默认右对齐对齐+输出的数字前带有正负号输出的数字前带有正负号0在数据前多余空格处补在数据前多余空格处补0二、二、 格式化的输入与输出格式化的输入与输出1. printf( )函数(格式输出函数)函数(格式输出函数) 【例【例3.1】输出整型、长整型、无符号整型数据#include “stdio.h”void main() int y=20; long a=1024; unsigned b=54321; printf(“%d,%ld,%un”,y,a,b); printf(“%+8d,%+8ld,%+8un

11、”,y,a,b); printf(“%08d,%08ld,%08un”,y,a,b); printf(“%-8d,%-8ld,%-8un”,y,a,b); printf(“%o,%lo,%on”,y,a,b); printf(“%#x,%#lx,%#xn”,y,a,b); printf(“%8o,%8lo,%8on”,y,a,b); printf(“%-8x,%-8lx,%-8xn”,y,a,b); 二、二、 格式化的输入与输出格式化的输入与输出1. printf( )函数(格式输出函数)函数(格式输出函数) 运行结果如下:(运行结果如下:(代表空格代表空格)20,1024,54321+20,

12、+1024,5432100000020,00001024,0005432120,1024,5432124,2000,1520610 x14,0 x400,0 xd432124,2000,15206114, 400, d4321二、二、 格式化的输入与输出格式化的输入与输出1. printf( )函数(格式输出函数)函数(格式输出函数) %-8.1E %-8.3fn86,1040【例【例3.2】输出字符和字符串#include “stdio.h”void main() char ch=a; printf(“%cn”,ch); printf(“%-3cn”,ch); printf(“%3cn”,c

13、h); printf(“%sn”,”programing”); printf(“%15sn”,”programing”); printf(“%-15sn”,”programing”); printf(“%10.5sn”,”programing”); printf(“%-10.5sn”,”programing”);运行结果如下:aaaprogramingprogramingprogramingprogrprogr二、二、 格式化的输入与输出格式化的输入与输出1. printf( )函数(格式输出函数)函数(格式输出函数) 【例【例3.3】输出实型数据#include “stdio.h”void

14、main() float x,y; double a; x=111111.111;y=123.468; a=333333333.33333; clrscr(); printf(“%fn”,x); printf(“%fn”,a); printf(“%10f,%10.2f,%.2f,%-10.2fn”,x,x,x,x); printf(“%en”,x); printf(“%en”,a); printf(“%10e,%10.2e,%.2e.%-10.2en”,a,a,a,a); printf(“%f,%e,%g”,y,y,y);二、二、 格式化的输入与输出格式化的输入与输出1. printf( )函

15、数(格式输出函数)函数(格式输出函数) 程序运行结果如下:程序运行结果如下:111111.109375333333333.333330111111.109375, 111111.11,111111.11,111111.111.11111e+053.33333e+083.33333e+08, 3.33e+08,3.33e+08.33e+08123.468002,1.23468e+02,123.468二、二、 格式化的输入与输出格式化的输入与输出1. printf( )函数(格式输出函数)函数(格式输出函数) 4. 在使用printf()函数时,还应注意以下问题 (1)转换说明与输出参数不一致时可

16、能产生错误。)转换说明与输出参数不一致时可能产生错误。printf()函中格式符串中的数目多于列表参数个数时,则会输出错误数据;如果格式符串中的数目少于列表参数个数,则多出的参数不被输出。例如:例如:#include “stdio.h”void main() int i=-6,x=5; float y=123.456; printf(“%d,%dn”,i); printf(“%-4d,%f”,i,y,x); 输出结果为:输出结果为: -6,2509 /*多余格式符输出错误数据*/ -6,123.456001 /* x未被输出*/二、二、 格式化的输入与输出格式化的输入与输出1. printf(

17、 )函数(格式输出函数)函数(格式输出函数) (2)“f”格式符一般为格式符一般为7位有效数字位有效数字,双精度一般为双精度一般为16位。位。例如:例如: #include “stdio.h” void main() float x=111111.111,y=222222.222; printf(%f,x+y); 输出结果为:输出结果为: 333333.328125 /*前7位是有效数字,后面数字无意义*/二、二、 格式化的输入与输出格式化的输入与输出1. printf( )函数(格式输出函数)函数(格式输出函数) (2)“f”格式符一般为格式符一般为7位有效数字位有效数字,双精度一般为双精度

18、一般为16位。位。 #include “stdio.h” void main() double x=111111.11111,y=222222.22222; printf(%lf,x+y); 输出结果为:输出结果为: 333333.333330 /*可达16位是有效数字,小数点保留6位*/二、二、 格式化的输入与输出格式化的输入与输出1. printf( )函数(格式输出函数)函数(格式输出函数) 二、二、 格式输入与输出格式输入与输出2 scanf( )函数(格式输入函数)函数(格式输入函数)一般形式:一般形式: scanf(格式控制格式控制,地址列表);,地址列表);功能:功能:从键盘向程

19、序中的变量输入一个或若干个任意类型的数据。例如:例如: scanf(%d,%d,&a,&b);); 1. 格式控制格式控制格式控制与printf基本相同,由格式说明、附加说明字符和普通字符三部分组成。% 格式字符作 用%d,%i输入带符号的十进制整数输入带符号的十进制整数%u输入无符号十进制整数输入无符号十进制整数%x,%X输入无符号的十六进制整数输入无符号的十六进制整数(不区分大小写不区分大小写)%o输入无符号形式八进制整数输入无符号形式八进制整数%f输入实数,可以用小数形式或指数形式输入输入实数,可以用小数形式或指数形式输入%e,%E%g,%G与与%f作用相同,作用相同,%

20、e、%f、%g可以互相替换可以互相替换%c输入单个字符输入单个字符%s输入字符串,将字符串送到一个字符数组中,在输入时以非空字符输入字符串,将字符串送到一个字符数组中,在输入时以非空字符开始,遇到回车或空格字符结束开始,遇到回车或空格字符结束二、二、 格式输入与输出格式输入与输出2 scanf( )函数(格式输入函数)函数(格式输入函数)格式修饰符格式修饰符作作 用用L或l用在格式字符用在格式字符d、o、x、u的前,表示输入长整型数据,用在的前,表示输入长整型数据,用在f或或e前,表示输入前,表示输入double型数据。型数据。h用在格式字符用在格式字符d、I、o、x前,表示输入短整型数据前,

21、表示输入短整型数据m指定输入数据所占宽度,不能用来指定实数型数据宽度,应为指定输入数据所占宽度,不能用来指定实数型数据宽度,应为正整数正整数*表示该输入项在读入后不赋值给相应的变量表示该输入项在读入后不赋值给相应的变量二、二、 格式输入与输出格式输入与输出2 scanf( )函数(格式输入函数)函数(格式输入函数)2. 地址列表地址列表地址列表:用逗号分隔的若干接收输入数据的变量地址。各变量地址间用逗号“,”分隔。变量地址组成:由地址运算符“&”后跟变量名组成。例如:例如:#include void main() int a,b, c; scanf(“%d%d%d”,&a,&a

22、mp;b,&c); printf(“a=%d,b=%d,c=%dn”,a,b,c);输入数据的格输入数据的格式表示什么意式表示什么意思思?二、二、 格式输入与输出格式输入与输出2 scanf( )函数(格式输入函数)函数(格式输入函数)运行时按以下方式输入运行时按以下方式输入a,b,c的值:的值:345 (输入a,b,c的值,用空格间隔)a=3,b=4,c=5 (输出a,b,c的值) 注:输入数据时,在两个数据之间以一个或多个空格间隔,也可以输入数据时,在两个数据之间以一个或多个空格间隔,也可以用用Enter键、键、Tab键分隔,键分隔,不能用逗号作为两个数据的分隔符。不能用逗号作为两

23、个数据的分隔符。下面输入均为合法:下面输入均为合法: 345 3 4 53(按Tab键)4 5如下面的输入不合法如下面的输入不合法:3,4,5二、二、 格式输入与输出格式输入与输出2 scanf( )函数(格式输入函数)函数(格式输入函数)3. 使用scanf()函数时应注意的问题(1)地址列表中的各个参量都是变量地址,而不是变量名。)地址列表中的各个参量都是变量地址,而不是变量名。例如:例如:设a 、 b 分别为整型变量和浮点型变量,则scanf(“%d %f”,&a,&b);是合法的。而scanf(%d %f,a,b);是非法的。 二、二、 格式输入与输出格式输入与输出2

24、scanf( )函数(格式输入函数)函数(格式输入函数)(2)普通字符在输入数据时,在对应位置上输入相同字符。)普通字符在输入数据时,在对应位置上输入相同字符。例如:例如:scanf(%d,%d,&a,&b)输入时应用如下形式:输入时应用如下形式:3,4以下输入格式是不对的:以下输入格式是不对的:343 : 4。又如:又如:scanf(”%d:%d:%d”,&x,&y,&z);输入形式应为:12:13:14。 二、二、 格式输入与输出格式输入与输出2 scanf( )函数(格式输入函数)函数(格式输入函数)(3)对于实型数据,输入时不能规定其精度。)对于实型数据,输入时不能规定其精度。例如:例如:scanf(“%6.3f”,&x);是不合法的。(4)在用)在用“%c”格式输入字符时,空格字符和格式输入字符时,空格字符和“转义字符转义字符”都将作为有效的字符输入。都将作为有效的字符输入。例如:例如:scanf(%c%c%c,&c1,&c2,&c3);如果输入:如果输入:abc则字符ac1,字符c2,字符bc3。正确输入方法是:正确输入方法是:a

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论