的意思是什麼%.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