1. 通用格式占位符
占位符 | 数据类型 | 示例输出 | 备注 |
---|---|---|---|
%d | 十进制整数 (int ) | -42 | 最常用整数占位符 |
%u | 无符号十进制整数 | 42 | 用于 unsigned int |
%ld | 长整型 (long ) | -2147483648 | 64 位系统可能需要 %lld |
%f | 浮点数 (float/double ) | 3.141593 | 默认保留 6 位小数 |
%e | 科学计数法浮点数 | 1.23e+04 | 小写 e |
%E | 科学计数法(大写 E ) | 1.23E+04 | |
%g | 自动选择 %f 或 %e | 3.14 或 1.23e+05 | 根据数值大小决定 |
%c | 单个字符 (char ) | 'A' | |
%s | 字符串 (const char* ) | "hello" | 需用 .c_str() 转换 std::string |
%p | 指针地址 | 0x7ffeeb0c | 以十六进制输出指针值 |
%x | 十六进制整数(小写) | ff | 无符号整数 |
%X | 十六进制整数(大写) | FF | |
%o | 八进制整数 | 777 | |
%% | 输出百分号 % | % |
转义字符 |
2. 高级格式化(配合修饰符)
(1) 宽度与精度
语法 | 作用 | 示例 (num=3.14159 ) |
---|---|---|
%5d | 最小宽度 5(右对齐) | 42 |
%-5d | 最小宽度 5(左对齐) | 42 |
%.2f | 保留 2 位小数 | 3.14 |
%8.3f | 宽度 8,保留 3 位小数 | 3.142 |
(2) 特殊修饰符
语法 | 作用 | 示例 (num=255 ) |
---|---|---|
%+d | 强制显示正负号 | +42 / -42 |
% d | 正数前加空格 | 42 / -42 |
%#x | 十六进制添加 0x 前缀 | 0xff |
%#o | 八进制添加 0 前缀 | 0377 |