基本占位符
占位符 | 数据类型 | 说明 |
---|---|---|
%d | 带符号十进制整数 | 输出带符号的十进制整数。 |
%i | 带符号十进制整数 | 与 %d 类似,输出带符号的十进制整数。 |
%u | 无符号十进制整数 | 输出无符号的十进制整数。 |
%o | 无符号八进制整数 | 输出无符号的八进制整数。 |
%x | 无符号十六进制整数(小写) | 输出无符号的十六进制整数(小写字母)。 |
%X | 无符号十六进制整数(大写) | 输出无符号的十六进制整数(大写字母)。 |
%f | 浮点数 | 输出浮点数(十进制计数法)。 |
%e | 浮点数 | 输出浮点数(科学计数法,小写 e)。 |
%E | 浮点数 | 输出浮点数(科学计数法,大写 E)。 |
%g | 浮点数 | 自动选择 %f 或 %e 。 |
%G | 浮点数 | 自动选择 %f 或 %E 。 |
%c | 字符 | 输出单个字符。 |
%s | 字符串 | 输出字符串。 |
%p | 指针 | 输出指针地址。 |
%% | 百分号 | 输出百分号本身。 |
长度修饰符
修饰符 | 数据类型 | 说明 |
---|---|---|
h | 短整型 | 用于输出短整型,如 %hd 。 |
l | 长整型或双精度浮点数 | 用于输出长整型或双精度浮点数,如 %ld 或 %lf 。 |
ll | 长长整型 | 用于输出长长整型,如 %lld 。 |
L | 长双精度浮点数 | 用于输出长双精度浮点数,如 %Lf 。 |
z | size_t | 用于输出 size_t 类型,如 %zu 。 |
t | ptrdiff_t | 用于输出 ptrdiff_t 类型,如 %td 。 |
j | intmax_t 或 uintmax_t | 用于输出 intmax_t 或 uintmax_t 类型,如 %jd 或 %ju 。 |
标志修饰符
修饰符 | 说明 |
---|---|
- | 左对齐输出。 |
+ | 始终显示正负号。 |
(空格) | 在正数前面添加空格。 |
# | 对于八进制和十六进制输出,添加前缀 0 和 0x 或 0X 。对于浮点数输出,始终显示小数点。 |
0 | 用前导零填充输出。 |
宽度和精度修饰符
修饰符 | 说明 |
---|---|
数字 | 指定输出的最小宽度。 |
.数字 | 指定浮点数的精度或字符串的最大长度。 |
示例
格式字符串 | 输出 | 说明 |
---|---|---|
"%d" | 123 | 输出整数 123。 |
"%.2f" | 3.14 | 输出浮点数 3.14,保留两位小数。 |
"%10s" | " Hello" | 输出字符串 “Hello”,总宽度为 10 个字符,右对齐。 |
"%05d" | 00123 | 输出整数 123,总宽度为 5 个字符,用前导零填充。 |
"%+d" | +123 | 输出整数 123,始终显示正负号。 |
"%#x" | 0x123 | 输出十六进制数 123,带有 “0x” 前缀。 |
"%p" | 0x7ffee3ac5640 | 输出指针地址。 |
代码
#include <stdio.h>
int main() {
int num = 123;
float pi = 3.14159;
char ch = 'A';
char str[] = "Hello";
printf("整数:%d\n", num);
printf("浮点数:%.2f\n", pi);
printf("字符:%c\n", ch);
printf("字符串:%s\n", str);
printf("十六进制:%x\n", num);
printf("带符号的宽度修饰符:%+d\n", num);
printf("左对齐宽度修饰符:%-10d\n", num);
return 0;
}
输出结果
整数:123
浮点数:3.14
字符:A
字符串:Hello
十六进制:7b
带符号的宽度修饰符:+123
左对齐宽度修饰符:123