background image

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); }