【printf函数输出格式】`printf` 是 C 语言中最常用的输出函数之一,用于将数据按照指定的格式输出到标准输出设备(通常是屏幕)。掌握 `printf` 的格式化输出功能,对于程序调试和信息展示非常重要。下面是对 `printf` 函数常用输出格式的总结。
一、基本语法
```c
printf("格式字符串", 参数1, 参数2, ...);
```
- 格式字符串:包含普通字符和格式说明符(以 `%` 开头)。
- 参数:与格式说明符一一对应的数据项。
二、常见格式说明符
格式说明符 | 说明 | 示例 | 输出结果 |
`%d` | 十进制整数 | `printf("%d", 10);` | 10 |
`%i` | 十进制整数 | `printf("%i", -5);` | -5 |
`%u` | 无符号十进制整数 | `printf("%u", 10);` | 10 |
`%o` | 八进制整数 | `printf("%o", 8);` | 10 |
`%x` | 十六进制小写字母 | `printf("%x", 255);` | ff |
`%X` | 十六进制大写字母 | `printf("%X", 255);` | FF |
`%f` | 浮点数 | `printf("%f", 3.14);` | 3.140000 |
`%e` | 科学计数法 | `printf("%e", 123.45);` | 1.234500e+02 |
`%E` | 科学计数法(大写) | `printf("%E", 123.45);` | 1.234500E+02 |
`%g` | 自动选择 f 或 e | `printf("%g", 123.45);` | 123.45 |
`%c` | 字符 | `printf("%c", 'A');` | A |
`%s` | 字符串 | `printf("%s", "Hello");` | Hello |
`%p` | 指针地址 | `printf("%p", &a);` | 0x7ffee3b8e9ac |
`%%` | 百分号 | `printf("%%");` | % |
三、格式修饰符
在格式说明符中可以添加修饰符来控制输出的宽度、精度、对齐方式等:
修饰符 | 说明 | 示例 | 输出结果 |
`` | 动态指定宽度或精度 | `printf("%d", 5, 10);` | 10 |
`.` | 指定精度(浮点数或字符串) | `printf("%.2f", 3.1415);` | 3.14 |
`-` | 左对齐 | `printf("%-5d", 10);` | 10(左对齐) |
`+` | 显示正负号 | `printf("%+d", 10);` | +10 |
`0` | 填充零 | `printf("%05d", 10);` | 00010 |
` ` | 空格填充 | `printf("% d", -5);` | -5 |
四、使用注意事项
- 格式说明符必须与参数类型匹配,否则可能导致未定义行为。
- 使用 `printf` 时应避免直接输出用户输入的内容,防止格式化字符串漏洞(如 `printf(user_input)`)。
- 在嵌入式系统中,建议使用安全的替代函数如 `snprintf`。
通过合理使用 `printf` 的格式化输出功能,可以更清晰地展示程序运行状态和数据内容,是 C 语言开发中不可或缺的一部分。