一、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!!
- 码字不易,记得点小心心 ( •̀ ω •́ )✧
本文详细介绍了printf格式控制的完整形式,包括可选标志(如左对齐、正负号显示)、输出最小宽度、精度(针对不同数据类型的应用)以及数据长度修饰符。通过示例展示了如何使用这些标志和修饰符来精确控制输出格式,对于理解C语言的输出格式化有重要帮助。
618

被折叠的 条评论
为什么被折叠?



