【printf函数输出格式】`printf` 是 C 语言中最常用的输出函数之一,用于向标准输出设备(如屏幕)输出数据。它支持多种格式化输出方式,能够灵活地将变量、字符串、数字等信息以特定的格式显示出来。掌握 `printf` 的格式化输出对于编写高效的 C 程序非常重要。
一、常用格式说明符
格式符 | 含义 | 示例 | 输出结果 |
`%d` | 十进制整数 | `printf("%d", 123);` | 123 |
`%i` | 十进制整数 | `printf("%i", -456);` | -456 |
`%u` | 无符号十进制数 | `printf("%u", 789);` | 789 |
`%o` | 八进制数 | `printf("%o", 10);` | 12 |
`%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);` | 0x7ffeeb3c4a24 |
`%%` | 百分号 | `printf("%%");` | % |
二、格式修饰符
除了基本的格式符外,`printf` 还支持一些格式修饰符,用于控制输出的宽度、精度、对齐方式等:
修饰符 | 说明 | 示例 | 输出结果 |
`%-5d` | 左对齐,宽度为5 | `printf("%-5d", 123);` | 123(右空格) |
`%05d` | 填充0,宽度为5 | `printf("%05d", 123);` | 00123 |
`%.2f` | 小数点后保留两位 | `printf("%.2f", 3.1415);` | 3.14 |
`%5.2f` | 宽度为5,小数点后保留两位 | `printf("%5.2f", 3.1415);` | 3.14 |
`` | 动态指定宽度或精度 | `printf("%.f", 5, 2, 3.14);` | 3.14 |
三、使用注意事项
1. 类型匹配:格式符必须与变量类型一致,否则可能导致未定义行为。
2. 避免溢出:在使用 `%s` 时,确保字符串以 `\0` 结尾,否则可能读取无效内存。
3. 安全性:建议使用 `printf_s`(C11)或 `snprintf` 来防止缓冲区溢出。
4. 可读性:合理使用格式修饰符可以提升输出的可读性和美观度。
通过灵活运用 `printf` 的格式化功能,可以更高效地进行程序调试和数据展示。掌握这些基本用法是学习 C 语言的重要一步。