use*_*976 3 c formatting printf placeholder output
可能重复:
使用printf打印浮动时额外的前导零?
我试图让这个C程序的输出有占位符零,因为该程序的输出将用作另一个程序的输入.现在,我正在使用以下打印行.
fprintf(fp1, "06 BR%d%d %3.4f%3.4f%3.4f\n",i,d,X,Y,Z);
i = index for the loop
d = index for a second loop
X = double for a Cartesian system
Y = double for a Cartesian system
Z = double for a Cartesian system
Run Code Online (Sandbox Code Playgroud)
现在输出看起来像这样:
06 BR12 1.00001.00001.0000
Run Code Online (Sandbox Code Playgroud)
我希望它像下面这样:
06 BR0102 001.0000001.0000001.000
Run Code Online (Sandbox Code Playgroud)
我知道我可以手动添加占位零(如果我<10,添加一个占位符等)但是有一种更有效的方法输出占位符零而不是简单地在if语句中添加它们吗?
先感谢您.
%08.4f
例如,您可以使用零填充.请注意,第一个数字是整个字段宽度,而不仅仅是小数点前所需的位数.在您的示例中,3
in %3.4
无效.如果你想让你的最后一个数字只有三个小数位,你就会想要%07.3f
那个.
该%d
格式更容易-你的情况,只是%02d
应该这样做.