printf()
可以限定占位符的最小宽度
例子:
# include <stdio.h>
int main()
{
printf ("%3d",1);
return 0;
}
%3d
表示这个占位符的宽度至少是5位,输出的值默认为是右对齐,如果不满3位,剩余的用空格填充,1前面填充2个空格。
1
如果想要输出是左对齐,可以在%
后面添加“-”号
# include <stdio.h>
int main()
{
printf ("%-3d",1);
return 0;
}
输出结果是1、、
(我这里的这个、
就是一个空格,这么写是方便更清楚的理解)
限定符限制所有最小数字的宽度
例如:
# include <stdio.h>
int main ()
{
printf ("%15f",112.678);
return 0;
}
浮点数用%f
,这个小数的最小宽度是15 ,浮点数的小数点后面规定是6位,不够6位用0补充,系统默认为是右对齐,所以112.678前面会添加5个空格。
即: 112.678000
同理,如果想要左对齐,在%
后面加上-
号。
默认情况下,printf()
只对负号显示,如果想要正负号都显示,即:
# include <stdio.h>
int main()
{
printf ("%+d\n",123);
printf("%+d\n",-123);
return 0;
}
输出结果是+123
和-123
%
后面加上+
号。例子:
# include <stdio.h>
int main ()
{
printf ("%.3f",1.2);
return 0;
}
%.3f
就是保留小数点后3位的意思,即输出结果是1.200
。
最小宽度和小数位数这两个值,可以用*
代替
例如:
# include <stdio.h>
int main()
{
printf ("%*.*f",4,1,1.2);
return 0;
}
即这里的printf()
是printf("%4.1f",1.2)
最小宽度是4位,保留小数点后1位, 1.2前面添加一个空格。
输出结果是 1.2
。
例子:
# include <stdio.h>
int main()
{
printf ("%.4s","hello mom");
return 0;
}
%.4s
是指保留字符串前4个字符,所以输出的结果是hell
。(注意:空格也算一个字符,如果这里不是%.4s
,而是%.7s
,那么输出的结果是hello m
)