欢迎来到天天文库
浏览记录
ID:52000497
大小:481.00 KB
页数:54页
时间:2020-03-28
《cjiaoxue3.数据地输入输出.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、三、数据的输入输出提供结果是求解问题的一个重要组成部份,在这一部分中将深入地探讨printf函数和scanf函数的格式化问题,这两个函数分别能够输入来自标准输入流的数据和把数据输出到标准输出流中。1内容提要1.输入输出流2.格式化输入函数:printf3.格式化输出函数:scanf4.常犯错误5.非格式化输入输出函数6.课堂练习7.课后作业21.标准输入输出流所有的输入输出都是用流完成的。流是按行组织的字符序列,每一行可以不包含字符或包含多个字符,流是用新行符结束的(getchar,putchar)。在程序开始执行时,有三种流是自动与程序连接的。通常,标准输入流(stdin)与键盘相连,标
2、准输出流(stdout)与屏幕相连。操作系统通常允许把这两种流重定向到其他设备上。第三种流是标准错误流(stderr),它与屏幕相连,错误报文输出到标准错误流中。32.格式化输出函数:printfprintf函数能够以精确的格式输出结果。每次调用printf时都要包含描述输出格式的格式控制串。格式控制串是由转换说明符、标志、域宽、精度和直接字符构成的字符串常量。转换说明符与百分号一起使用就构成了“转换规范”。"x=%-6.2f"4printf的格式化功能为浮点值保留指定个数的小数位对齐一列浮点值的小数点输出右对齐和左对齐把直接字符准确地插入到一行输出中输出指数格式的浮点数输出八进制和十
3、六进制格式的无符号整数以固定域宽和精度显示各种类型的数据。5printf函数的一般格式例:如果a、b的值分别是17和21,则输出为:1721如果a、b的值分别是3和4,则输出为:a=3b=4(注意输出时的空格)printf(格式控制,输出列表)printf(“%d%d”,a,b);printf(“a=%db=%d”,a,b);保留直接字符!6输出整数转换说明符描述d显示一个带符号的十进制数i显示一个带符号的十进制数(i和d在用在scanf函数中时是不同的)o显示一个无符号的八进制数u显示一个无符号的十进制数(unsigned型)x或X显示一个无符号的十六进制数,X可用来显示数字0~9和字母
4、A~F,x可用来显示数字0~9和字母a~fh或l放在整数转换说明符之前表示分别显示short和long类型的整数值。7输出浮点数转换说明符描述e或E以指数形式显示浮点数f显示浮点值g或G以浮点形式f或指数形式e(或E)显示符浮点数(自动选择)l或L放在浮点数转换说明符之前说明要显示longdouble类型的实数值%f%e默认输出6位小数,不足则补零。%g则有几位有效小数就只输出这几位小数。8输出字符串和字符转换说明符描述c用来输出一个char型字符s用来输出一个字符串,要求一个指向char型的指针参数9输出的域宽用於存放输出数据的宽度称为“域宽”。如果域宽大於被打印数据的宽度,数据通常会在
5、域内右对齐。如果输出值的宽度大於域宽时,域宽是自动增长的。域宽通常插在百分号和转换说明符之间。printf("%4d",123);printf("%4d",1234);printf("%4d",12345);12312341234510输出的精度用printf函数也可以指定输出数据的精度。对於不同的数据类型,精度有不同的含意。用於整数转换说明符d,精度表示至少要输出的数字个数(如果被输出的数字个数小於只指定的精度,就在输出值前面加0)。若同时规定了域宽,则其值大于精度时才有效。printf("%.4d",873);printf("%.9d",873);087300000
6、087311输出浮点数精度用於浮点数转换说明符e、E、f,精度是小数点后面显示的数字个数。printf("%.3f",123.45678);printf("%.3e",123.45678);123.4561.235e+02用於浮点数转换说明符g、G,精度是打印出的有效数字的最大个数。printf("%.3g",123.45678)12312输出字符串精度用於字符串说明符s时,精度是被输出的字符的最大个数。printf(“%.11s”,“Happybirthday”);输出结果为:Happybirth思考:用%12.11s打印上述字符串,结果是什么?13输出转义字符字符形式功
7、能换行t横向跳格v竖向跳格b退格r回车f走纸换页\反斜杠字符“”'单引号字符“'”ddd一到三位8进制数所代表的字符xhh一到二位16进制数所代表的字符14在printf的格式控制串中使用标志标志描述-(减号)使输出在域宽中左对齐+(加号)在正数值前面显示一个加号,在负数值前面显示一个减号空格在没有打印+标志的正数值前面打印一个空格#和八进制转换说明符o一起使用时,在输出值前面加上0,和十六进制转
此文档下载收益归作者所有