内容正文:
数据的输入与输出
Teacher teaching design
CONTENTS
目 录
数据的输出函数
格式符的使用
案例分析
仿真演练
数据的输出函数---printf
PART 01
printf(“格式控制字符串”,输出表列)
(一)、printf函数调用的一般形式
形式:
按“格式控制字符串”的指定格式,输出对应的变量
功能:
格式控制字符串用于指定输出格式。格式控制串可由格式字符串和非格式字符串(普通字符)两种组成。格式字符串是以%开头的字符串,在%后面跟有各种格式字符,以说明输出数据的类型、形式、长度、小数位数等。
说明
非格式字符串在输出时原样照印,在显示中起提示作用。
输出表列中给出了各个输出项,要求格式字符串和各输出项在数量和类型上应该从左到右一一对应
(2)
“格式控制字符串”中的格式字符,必须与“输出表列”中输出项的数据类型 一致,否则会引起输出错误。
变量输出表内容可以是表达式:
(3)
变量输出表属于可选内容。
(1)
输出表列
如:
printf("%d",3*a+5);
如: printf("a=%d b=%d
", a, b);
如: printf("How do you do !
");
如果输出的数据多于1个,相邻之间用逗号分隔。
如:
int a=10; printf("%f",a);
printf格式字符表
格式字符 意 义
d 以十进制形式输出带符号整数(正数不输出符号)
o 以八进制形式输出无符号整数(不输出前缀0)
x,X 以十六进制形式输出无符号整数(不输出前缀Ox)
u 以十进制形式输出无符号整数
f 以小数形式输出单、双精度实数
e,E 以指数形式输出单、双精度实数
g,G 以%f或%e中较短的输出宽度输出单、双精度实数
c 输出单个字符
s 输出字符串
printf 附加格式说明字符
标 志 意 义
- 结果左对齐,右边填空格
m( 正整数) 数据最小宽度
n( 正整数) 对实数表示输出n位小数,对字符串表示截取的字符个数
字母l 用于长整型整数,可以加在格式符d,o,x,u前面。
# 对c,s,d,u类无影响;对o类,在输出时加前缀0;对x类,在输出时加前缀0x;对e,g,f 类当结果有小数时才给出小数点
空格 输出值为正时表示以空格,为负时加以负号
(1)格式字符d──以带符号的十进制整数形式输出
01
%d
按整型数据的实际长度输出
02
%md
m为指定的输出字段的长(宽)度
%ld
%-md
数据的位数小于m,
则左补空格
数据的位数大于m,
则按实际位数输出
数据的位数小于m,
则右补空格
数据的位数大于m,
则按实际位数输出
03
04
%ld---字母l用于长整型数据输出,还可以加在格式符o,x,u前面。
main()
{
int n1=111;
long n2=222222;
printf("n1=%d,n1=%4d,n1=%-4d,n1=%2d
",n1,n1,n1,n1);
printf("n2=%ld,n2=%9ld,n2=%2ld
",n2,n2,n2);
printf("n1=%ld
",n1);
}
n1=111,n1=□111,n1=111□,n1=111
n2=222222,n2=□□□222222,n2=222222
格式符d的使用
整数的其他形式:
%o(小写字母o )----整数八进制无符号形式输出;
%x ---整数十六进制无符号形式输出。
%u---对于unsigned型数据,以十进制无符号形式输出。
源程序
其他形式
运行结果
(2)格式字符f──以小数形式,输出单精度和双精度实数
01
%f
按系统默认宽度输出实数:整数部分全部输出,小数部分输出6位。
单精度变量的输出有效位是7位;双精度变量的输出有效位是16位。
02
%-m.nf
m和负号的用法与前面相同。
%g
m是正整数,表示数据最小宽度
n是正整数,表示小数位数
03
让系统根据数值的大小,自动选择%f或%e格式、且不输出无意义的零。
举例:
main( ){ float x=11111.111,y=33333.333; printf("x+y=%f
",x+y);}
运行结果:
x+y=44444