3 回答
侃侃无极
TA贡献2051条经验 获得超10个赞
这里更详细。
整数值或*指定最小字段宽度。如果需要,结果用空格字符填充(默认情况下),在右对齐时在左侧填充,在左对齐时在右侧填充。在使用*的情况下,宽度由int类型的附加参数指定。如果参数的值为负,则结果将指定为-标志,且字段宽度为正。(注意:这是最小宽度:该值永远不会被截断。)
.后跟整数或*,或者都不指定转换的精度。在使用*的情况下,精度由int类型的附加参数指定。如果此参数的值为负,则将其忽略。如果既不使用数字也不使用*,则精度为零。有关精度的确切影响,请参见下表。
因此,如果我们尝试两种转换规范
#include <stdio.h>
int main() {
int precision = 8;
int biggerPrecision = 16;
const char *greetings = "Hello world";
printf("|%.8s|\n", greetings);
printf("|%.*s|\n", precision , greetings);
printf("|%16s|\n", greetings);
printf("|%*s|\n", biggerPrecision , greetings);
return 0;
}
我们得到输出:
|Hello wo|
|Hello wo|
| Hello world|
| Hello world|
- 3 回答
- 0 关注
- 1192 浏览
添加回答
举报
0/150
提交
取消