一、printf格式控制的完整形式:
。%[标志] [输出最小宽度] [.精度] [数据长度] 数据类型字符
.
1、“[ ]”
表示该项为可选项,即不选也可。
.
2、“[标志]”
标志字符有 -、+、#、空格、0 五种
标志 | 说明 |
---|---|
- | 左对齐,默认为右对齐(输出实际长度<输出最小宽度,右边补空格) |
+ | 右对齐,正数输出(+),负数输出(-)(输出实际长度<输出最小宽度,左边补空格) |
# | 输出十六进制时,前面会加前缀(0x) |
空格 | 正数输出空格,负数输出(-) |
0 | 当实际位数少于最小宽度时在前面补 0 |
示例
标志 | 示例 | 输出结果 |
---|---|---|
- | ("%-6d\n", 100) | 100◡◡◡ |
+ | ("%+6d\n", 100) | ◡◡+100 |
+ | ("%+6d\n", -100) | ◡◡-100 |
# | ("%#x\n",0x12) | 0x12 |
空格 | ("% d\n", 100) | ◡100 |
空格 | ("% d\n", -100) | -100 |
0 | ("%06d\n", 123) | 000123 |
.
3、“[输出最小宽度]”
用十进制整数表示输出的最少位数,若实际位数多于定义的宽度,则按实际位数输出,实际位数少于定义的宽度则补以空格或 0。
.
4、“[.精度]”
用“小数点”加“十进制正整数”表示。
数据类型 | 十进制整数 说明 |
---|---|
整型(d,i,o,u,x,X) | 表示输出的最小的数字个数,不足则前面补零,超过则原长度输出 |
浮点型(a, A, e, E, f ) | 表示小数点后至多输出的数字个数,不足则后面补数字0,多则做四舍五入处理 |
字符串(s) | 表示最多输出的字符个数,不足则后面补空格,多则截断 |
示例
数据类型(举例) | 示例 | 输出结果 |
---|---|---|
整型(d) | ("%.6d\n", 123) | 000123 |
整型(d) | ("%.3d\n", 1234) | 1234 |
浮点型(f) | ("%5.3f\n", 1.12567) | 1.126 |
浮点型(f) | ("%5.3f\n", 1.12) | 1.120 |
字符串(s) | ("%.5s\n","123") | 123◡◡ |
字符串(s) | ("%.5s\n","12345678") | 12345 |
5、“[.数据长度]”
可选的输出长度修饰符。
数据长度类型 | 说明 |
---|---|
h | 表示以短整型输出整数或以单精度输出浮点数 |
l | 表示以长整型输出整数或以双精度输出浮点数 |
ll | 表示以64位长整型输出整数 |
附1
举例 | 说明 |
---|---|
%d = %ld | 用来输出十进制整数,32位系统中占4个字节(32位) |
(输出范围: -2147483647 ~ 2147483647 即 ( -0 x 7FFF FFFF ) ~ ( 0 x 7FFF FFFF ) ) | |
%hd | 短整型,32位系统中占2个字节(16位) |
(输出范围: -32768 ~ 32767 即 ( -0 x 7FFF ) ~ ( 0 x 7FFF ) ) | |
%lld | 长整型,32位系统中占8个字节(64位) |
(输出范围: -9223372036854775808 ~ 9223372036854775807 即 ( -0 x 7FFF FFFF FFFF FFFF ) ~ ( 0 x 7FFF FFFF FFFF FFFF ) ) | |
%x = %lx | 以无符号十六进制形式输出整数,32位系统中占4个字节(32位) |
(输出范围: 0 ~ ( 0 x FFFF FFFF ) ) | |
%llx | 以无符号十六进制形式输出整数,32位系统中占8个字节(64位) |
(输出范围: 0 ~ ( 0 x FFFF FFFF FFFF FFFF ) ) | |
%f | 用来输出实数(包括单、双精度),以小数形式输出,不指定宽度,整数部分全部输出并输出6位小数,小数位不够6位则在后面补0 |
二、小结
- 欢迎纠正
- ☆⌒(*^-゜)v THX!!
- 码字不易,记得点小心心 ( •̀ ω •́ )✧