C语言格式说明符详解286


格式说明符是C语言中用于指定输出格式的特殊字符序列。它们用于控制输出数据的对齐、填充、宽度和精度。本文将全面介绍C语言中的格式说明符,帮助您掌握输出格式化技巧。

基础格式说明符

以下是最常用的基础格式说明符:| 说明符 | 数据类型 | 描述 |
|---|---|---|
| %c | 字符 | 输出一个字符 |
| %d | 整数 | 输出一个十进制整数 |
| %e | 浮点数 | 以科学计数法输出一个浮点数 |
| %f | 浮点数 | 以小数格式输出一个浮点数 |
| %o | 整数 | 输出一个八进制整数 |
| %s | 字符串 | 输出一个字符串 |
| %u | 整数 | 输出一个无符号十进制整数 |
| %x | 整数 | 输出一个十六进制整数 |

宽度和精度

宽度和精度指定符用于控制输出数据的长度和格式。宽度指定符(%nw)指定最小输出宽度,而精度指定符(%.m)指定小数点后的位数(对于浮点数)或最大输出字符数(对于字符串)。

例如:```c
printf("宽度为 10 的整数:%10d", 123); // 输出 " 123"
printf("精度为 2 的浮点数:%.2f", 123.456); // 输出 "123.46"
```

对齐和填充

对齐和填充指定符用于控制输出数据的对齐和填充字符。对齐指定符(%-)将数据左对齐,而填充指定符(0)将数据用 0 填充。

例如:```c
printf("左对齐的整数:%-10d", 123); // 输出 "123 "
printf("用 0 填充的字符串:%010s", "Hello"); // 输出 "00000Hello"
```

修饰符

修饰符用于修改格式说明符的行为。以下是常用的修饰符:| 修饰符 | 描述 |
|---|---|
| h | 指定短整数 |
| l | 指定长整数 |
| ll | 指定长长整数 |
| L | 指定长双精度浮点数 |

例如:```c
printf("短整数:%hd", (short)123); // 输出 "123"
printf("长双精度浮点数:%Lf", 123.456L); // 输出 "123.456000"
```

其他格式说明符

除了上述基础格式说明符外,C语言还提供了一系列其他格式说明符,用于输出特殊数据类型或执行特定操作。

示例:| 说明符 | 描述 |
|---|---|
| %a | 以十六进制格式输出一个浮点数(仅适用于 IEEE 浮点数) |
| %G | 以科学计数法或十进制格式输出一个浮点数,具体取决于精度 |
| %p | 输出一个指针地址 |
| %% | 输出一个百分号字符(%%) |

格式说明符示例

以下是展示格式说明符如何工作的示例代码:```c
#include
int main() {
int num1 = 12345;
float num2 = 123.456;
char str[] = "Hello";
// 宽度和精度
printf("宽度为 15 的整数:%15d", num1);
printf("精度为 2 的浮点数:%.2f", num2);
// 对齐和填充
printf("左对齐的整数:%-10d", num1);
printf("用 0 填充的字符串:%010s", str);
// 修饰符
printf("短整数:%hd", (short)num1);
printf("长双精度浮点数:%Lf", 123.456L);
return 0;
}
```

运行此代码将产生以下输出:```
宽度为 15 的整数: 12345
精度为 2 的浮点数:123.46
左对齐的整数:12345
用 0 填充的字符串:00000Hello
短整数:12345
长双精度浮点数:123.456000
```

2024-12-02


上一篇:函数返回值的类型在 C 语言中由什么决定?

下一篇:C语言中函数返回值的类型