c 语言 printf()输出格式控制
1
.转换说明符
%a(%A) 浮点数、十六进制数字和 p-(P-)记数法(C99) %c
字符
%d
有符号十进制整数
%f 浮点数(包括 float 和 doulbe) %e(%E) 浮点数指数输出[e-(E-)记数法] %g(%G) 浮点数
不显无意义的零"0"
%i 有符号十进制整数(与%d 相同) %u
无符号十进制整数
%o
八进制整数 e.g. 0123
%x(%X) 十六进制整数 0f(0F) e.g. 0x1234 %p
指针 %s
字符串 %% "%"
2
.标志
左对齐:"-" e.g. "%-20s" 右对齐:"+" e.g. "%+20s"
空格:若符号为正,则显示空格,负则显示"-" e.g. "% 6.2f" #:对 c,s,d,u 类无影响;对 o
类,在输出时加前缀 o;对 x 类,在输出时加前缀 0x
;
对 e,g,f
类当结果有小数时才给出小数点。
3
.格式字符串(格式)
[标志][输出最少宽度][.精度][长度]类型 "%-md" :左对齐,若 m 比实际少
时,按实际输出。
"%m.ns":输出 m 位,取字符串(左起)n 位,左补空格,当 n>m or m 省略时 m=n
e.g. "%7.2s" 输入 CHINA
输出" CH" "%m.nf":输出浮点数,m 为宽度,n
为小数点右边数位 e.g. "%3.1f" 输入
3852.99
输出 3853.0 长度:为h短整形量,
l为长整形量
printf
的格式控制的完整格式: % - 0 m.n l 或 h
格式字符
下面对组成格式说明的各项加以说明:
①%
:表示格式说明的起始符号,不可缺少。
②-:有-
表示左对齐输出,如省略表示右对齐输出。 ③ 0:有 0 表示指定空位填 0,如省
略表示指定空位不填。
④ m.n:m 指域宽,即对应的输出项在输出设备上所占的字符数。N 指精度。用于说明
输出的实型数的小数位数。为指定 n 时,隐含的精度为 n=6
位。
⑤ l 或 h:l 对整型指 long 型,对实型指 double 型。h 用于将整型的格式字符修正为 short
型。
格式字符用以指定输出项的数据类型和输出格式。 ① d 格式:用来输出十进制整数。有
以下几种用法: %d
:按整型数据的实际长度输出。
%md:m 为指定的输出字段的宽度。如果数据的位数小于 m,则左端补以空格,若大于
m
,则按实际位数输出。 %ld
:输出长整型数据。
② o 格式:以无符号八进制形式输出整数。对长整型可以用"%lo"格式输出。同样也可以
“
指定字段宽度用 %mo”
格式输出。 例:
main()
{ int a = -1;
printf("%d, %o", a, a); }