use*_*729 9 c formatting printf
这是什么%.6d意思的:
printf("%s.%.6d len:%d ", timestr, header->ts.tv_usec, header->len);
Run Code Online (Sandbox Code Playgroud)
这是一个错字吗?
它似乎%.6d是一样的%6d.
cod*_*ict 27
%.6d
Run Code Online (Sandbox Code Playgroud)
在整数说明符(d,i,o,u,x,X)的.precision格式中,precision指定要写入的最小位数.如果要写入的值小于此数字,则结果将使用前导零填充.即使结果较长,也不会截断该值.
%6d
Run Code Online (Sandbox Code Playgroud)
宽度(此处为6)指定要打印的最小字符数.如果要打印的值小于此数字,则结果将填充空格.即使结果较大,也不会截断该值.
例:
printf("%.6d\n%6d",1,1);
Run Code Online (Sandbox Code Playgroud)
输出:
000001
1
Run Code Online (Sandbox Code Playgroud)
前者用零填充,后者用空格填充.
#include <stdio.h>
int main(void) {
printf ("%.6d\n", 123);
printf ("%6d\n", 123);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
产生以下输出,
000123
123
Run Code Online (Sandbox Code Playgroud)