| 占位符 | 适用类型 | 输出形式 | 备注 |
|---|---|---|---|
| %c | char | 单个字符 | 参数按 ASCII 输出 |
| %s | char* | 字符串 | 直到遇到 \0 或精度限制 |
| %d / %i | int | 有符号十进制整数 | 正数不显示符号 |
| %u | unsigned int | 无符号十进制整数 | |
| %o | unsigned int | 无符号八进制整数 | 不带前导 0 |
| %x / %X | unsigned int | 无符号十六进制整数 | %x 小写,%X 大写 |
| %f | float / double | 小数形式浮点数 | 默认 6 位小数 |
| %e / %E | float / double | 指数形式浮点数 | 默认 6 位小数 |
| %g / %G | float / double | 选 %f 或 %e 中更短的 | 会去掉多余 0 |
| %p | 指针 | 实现相关地址表示 | |
| %n | int* | 已输出字符数写入指针 | 不打印内容 |
| %% | — | 输出一个百分号 | 把 %% 写进格式串即可 |
常用修饰符
宽度:%5d 表示最少占 5 列,不足右侧补空格
精度:%.2f 输出两位小数;%.3s 最多打印 3 个字符
左对齐:%-10s 在 10 列内左对齐字符串
前导零:%04d 不足位用 0 填充,如 0075
#:在八、十六进制前加 0 或 0x,如 %#x
