2016-02-19 15 views
1

我的值爲seconds,簡寫爲060,我想以00:00:00的格式打印它。因此,例如,60秒將顯示爲00:01:00如何在C中的數字前添加0進行格式化?

所以我有一個價值觀:

unsigned long long sec; 
unsigned long long min; 
unsigned long long hr; 
unsigned long long t; 

和我這樣做:

//pass in value of seconds 
hr = sec/3600; 
t = sec%3600; 
min= t/60; 
sec = t%60; 

char *colon = ":"; 

printf("%llu%s%llu%s%llu\t", hr,colon,min,colon,sec); 

這部分打印我想要的東西,像0:1:0,從前面的例子。然而,如果它只有1個字符長度,我需要在前面加一個0 ....我能想到的唯一方法是轉換爲字符串,如果長度爲1,則在開始時將字符串合併爲零,但我覺得就像有更好的方法......我只是不知道它。任何幫助將不勝感激,謝謝!

回答

2

您可以在每個%u說明符之前添加一個數字字段寬度,使其具有特定的大小。在這種情況下,這將是2

然後在之前添加0標誌來指示該字段應該用零填充左側。

printf("%02llu%s%02llu%s%02llu\t", hours,colon,minutes,colon,seconds); 
+0

謝謝!!! :)所以基本上,這個字段的長度應該是2,如果不是0,那麼它的起始位置就是0,直到它變爲2. – ocean800

+0

@ ocean800這是正確的。 – dbush

+0

謝謝!將接受... 9分鐘 – ocean800

相關問題