的意思是什么%.6d
意味着:什么是 “%.6d” printf中
printf("%s.%.6d len:%d ", timestr, header->ts.tv_usec, header->len);
它是一个错字?
看起来%.6d
与%6d
相同。
的意思是什么%.6d
意味着:什么是 “%.6d” printf中
printf("%s.%.6d len:%d ", timestr, header->ts.tv_usec, header->len);
它是一个错字?
看起来%.6d
与%6d
相同。
%.6d
在.precision格式整数说明符(d,I,O,U,X,X),精度指定的最小位数被写入。如果要写入的值小于此数字,则结果为用前导零填充。即使结果更长,值也不会被截断。
%6d
的宽度(此处6)指定要打印的字符的最小数目。如果要打印的值小于此数字,则结果为用空格填充。即使结果较大,该值也不会被截断。
实施例:
printf("%.6d\n%6d",1,1);
输出:
000001
1
所以它只是填充**零和**空白**的不同而已? – user198729 2010-05-06 06:12:25
那么'%.6d'和'%06d'是一样的吗? Blech,让我们听听它的一致性。 > _ < – 2010-05-07 13:22:03
与'%06d'相同的是'%.6d'吗? – 2016-08-17 16:36:20
前者将垫用零,后者用的空间。
#include <stdio.h>
int main(void) {
printf ("%.6d\n", 123);
printf ("%6d\n", 123);
return 0;
}
产生下面的输出,
00
123
是不是真的更容易/快问这个问题上的SO比写一个简单的测试程序(如在回答各种问题),然后运行它,看看区别? – tomlogic 2010-05-06 21:09:21
你甚至不需要一个程序。只需在bash中运行'printf'%.6d \ n'1234'。 – 2010-05-07 13:21:10