printf函数的格式说明符
printf 的格式说明符提供了灵活的输出控制,合理使用修饰符可以实现对齐、补零、精度调节等功能。
1、基本说明符
| 说明符 | 作用 | 示例(输入→输出) |
|---|
%d | 输出有符号十进制整数 | printf("%d", 42); → 42 |
%u | 输出无符号十进制整数 | printf("%u", 42); → 42 |
%o | 输出无符号八进制整数 | printf("%o", 10); → 12 |
%x | 输出无符号十六进制(小写) | printf("%x", 255); → ff |
%#x | 添加前缀 0x 到输出的十六进制数前 | printf("%#x", 255); → 0xff |
%X | 输出无符号十六进制(大写) | printf("%X", 255); → FF |
%f | 输出浮点数(默认6位小数) | printf("%f", 3.14); → 3.140000 |
%e | 科学计数法(小写 e) | printf("%e", 1000.0); → 1.000000e+03 |
%E | 科学计数法(大写 E) | printf("%E", 1000.0); → 1.000000E+03 |
%c | 输出单个字符 | printf("%c", 'A'); → A |
%s | 输出字符串 | printf("%s", "Hello"); → Hello |
%p | 输出指针地址(十六进制) | int x; printf("%p", &x); → 0x7ffd1234 |
%% | 输出百分号 % | printf("%%"); → % |
2、修饰符
| 修饰符 | 作用 | 示例(输入→输出) |
|---|
%Nd | 最小宽度为 N,不足补空格 | printf("%5d", 42); → 42 |
%-Nd | 左对齐,宽度 N | printf("%-5d", 42); → 42 |
%0Nd | 补零而非空格 | printf("%05d", 42); → 00042 |
%.Mf | 浮点数保留 M 位小数 | printf("%.2f", 3.1415); → 3.14 |
%.Ms | 字符串最多输出 M 个字符 | printf("%.2s", "Hello"); → He |
%hd | short int | short x=42; printf("%hd", x); |
%ld | long int | long x=42; printf("%ld", x); |
%lld | long long int | long long x=42; printf("%lld", x); |
%lu | unsigned long | unsigned long x=42; printf("%lu", x); |
%f/%lf | float/double(C99后等价) | double x=3.14; printf("%lf", x); |
%Lf | long double | long double x=3.14; printf("%Lf", x); |