printf 格式说明符:字段宽度与对齐
printf 里面的格式说明符除了可以约定小数点位数,还可以约定输出的总宽度。
浮点数的格式化说明符一般形式是:
%[宽度][.小数位数][修饰符]f
方括号表示可选,可以任意组合。
- 宽度:一个整数,指定输出的总字符数(包含数字、小数点、空格等)。
- 修饰符:当输出类型为
long double时,修饰符部分为L,否则省略。
代码示例
#include <stdio.h>
int main(void)
{
float plank_length = 10.0f;
float piece_count = 4.0f;
float piece_length = 0.0f;
piece_length = plank_length / piece_count;
printf("一块长%8.2f尺的面板平均分成%5.0f份后每块长%6.2f尺\n",plank_length,piece_count,piece_length);
return 0;
}Code language: PHP (php)
输出结果
一块长 10.00尺的面板平均分成 4份后每块长 2.50尺Code language: CSS (css)
宽度解析
| 格式说明符 | 总宽度 | 实际输出 | 补齐方式 |
|---|---|---|---|
%8.2f | 8 | 10.00(前面2个空格) | 右对齐,左侧补空格 |
%5.0f | 5 | 4(前面4个空格) | 右对齐,左侧补空格 |
%6.2f | 6 | 2.50(前面2个空格) | 右对齐,左侧补空格 |
左对齐
指定字段宽度时,数值默认是右对齐的。如果希望左对齐,只需要在 % 后面添加一个负号 -:
printf("一块长%-8.2f尺的面板平均分成%5.0f份后每块长%6.2f尺\n",plank_length,piece_count,piece_length);Code language: CSS (css)
左对齐输出效果:
一块长10.00 尺的面板平均分成 4份后每块长2.50 尺Code language: CSS (css)