C语言 格式化输入输出

本文将介绍 C 语言中格式化输入输出的格式化参数。

一、格式化输出

1. 格式

1
printf -- %[flag][width][.prec][hlL]type

2. [flag]

(1) 无:

右对齐

(2) - :

左对齐

(3) + :

强制输出数字的正负(正数加 + ,负数加 - )

(4) 0 :

以 0 填充空间

3. [width] [.prec]

(1) width:

最小字符数

  • 若数字超出限定,系统会自动扩大
  • 小数点计算为一位

(2) .prec:

小数点后位数

(3) *:

利用参数传递 width 和 .prec

(4)示例

1
2
3
printf("%07.2f", 123.4);
空位用0填充;小数点后两位;前+小数点+后共7
打印结果为:0123.40

利用 * 传递参数:

1
2
printf("0*.*f", 7, 2, 123.4);
打印结果同样为:0123.40

4. [hlL]

(1) h:

短整型

(2) l:

长整型

(3) L:

长双精度型

5. type

符号 含义
d 有符号十进制整数
c 字符
s 字符串
f 浮点数
p 地址
e 指数
u 无符号十进制整数
o 八进制
x 十六进制

二、格式化输入

1. 格式

1
scanf  -- %[width][hlL]type

2. width

读入的最大字符数,超出则不读入。

3. hlL

(1) h:

短整型

(2) l:

长整型

(3) L:

长双精度型

4. type

符号 含义
d 有符号十进制整数
c 字符
s 字符串
f 浮点数
p 地址
e 指数
u 无符号十进制整数
o 八进制
x 十六进制

参考