在 C 语言中,printf() 函数的格式输出符(格式说明符)用于控制输出的格式和数据类型。以下是常见的格式说明符及其用法:
基本格式符
| 格式输出符 | 数据类型 | 说明 |
|---|
| %d | int | 输出有符号十进制整数 |
| %u | unsigned int | 输出无符号十进制整数 |
| %c | char | 输出单个字符。 |
| %f | float/double | 输出浮点数(默认保留6位小数 |
| %Lf | long double | 输出浮点数 |
| %e/%E | float/double | 科学计数法输出浮点数(如3.14e+1或者3.14E+1) |
| %g/%G | float/double | 自动选择 %f 或 %e,省略末尾的零 |
| %s | char* | 输出字符串(以 \0 结尾的字符数组) |
| %p | void* | 输出指针地址(十六进制格式) |
| %x/%X | unsigned int | 输出十六进制整数(小写或大写字母) |
| %o | unsigned int | 输出八进制整数 |
| %% | | 输出 % 符号本身 |
| %a/%A | float/double | 输出浮点数的十六进制表示(C99 起支持,如 0x1.5p+1) |
| %zd | sizeof() | 输出数据类型的大小 |
| %zu | sizeof() | 输出数据类型的大小 |
格式修饰符
| 格式输出符 | 说明 |
|---|
| %5d | 输出至少 5 字符宽,不足时右对齐填充空格 |
| %-5d | 左对齐填充空格 |
| %05d | 输出至少 5 字符宽,右对齐并用 0 填充(如 00123) |
| %.2f | 保留 2 位小数 |
| %.5s | 最多输出字符串的前 5 个字符 |
| %10.3f | 总宽度 10 字符,保留 3 位小数。 |
| %* | 动态指定宽度或精度 |
int width = 8, precision = 3;
printf("%*.*f", width, precision, 3.14159);
转义字符