web-dev-qa-db-ja.com

Cで数字を2桁として表示するにはどうすればよいですか?

Cプログラミング用。数字を0、1、2、3ではなく00、01、02、03として表示するにはどうすればよいですか?.

私はあなたが小数を行うときに「%.2f」などを行うことができることを知っていますが、整数の逆はどうですか?

ここに私が使用しているものがあります... **

printf("Please enter the hours: ");
    scanf ("%d",&hour);
printf("Please enter the minutes: ");
    scanf ("%d",&minute);
printf("Please enter the seconds: ");
    scanf ("%d",&second);
printf("%d : %d : %d\n", hour, minute, second);

}

00:00:00として表示する番号が必要です

38
Adeel Anwar

2つのスペースに先行ゼロを埋め込む場合は、%02dを使用する必要があります。

printf ("%02d : %02d : %02d\n", hour, minute, second);

たとえば、次の完全なプログラムを参照してください。

#include <stdio.h>
int main (void) {
    int hh = 3, mm = 1, ss = 4, dd = 159;
    printf ("Time is %02d:%02d:%02d.%06d\n", hh, mm, ss, dd);
    return 0;
}

どの出力:

Time is 03:01:04.000159

%02dは2文字最小幅を意味するため、123 as123を出力することに注意してください。値が有効な時間、分、秒であれば問題になりませんが、多くの経験の浅いコーダーは、2が何らかの形で最小のand最大長であるという間違いを犯しているように見えるので、覚えておく価値があります。

54
paxdiablo

代わりに%02d形式を使用してください。 0はゼロを使用してフィールドにパディングすることを意味し、2はフィールドの幅が2文字であることを意味します。

34
dreamlax