57

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

小数を実行するときに「%.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として表示する番号が必要です

??

4

3 に答える 3

82

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

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をとして出力することに注意してください。値が有効な時間、分、秒であれば問題にはなりませんが、経験の浅いコーダーの多くは2が最小長最大長であると誤解しているように見えるため、覚えておく価値があります。 123

于 2013-01-31T03:16:07.617 に答える
40

%02d代わりに次の形式を使用してください。0ゼロを使​​用してフィールドをパディングする手段と、フィールドの2幅が2文字であることを意味します。したがって、表示に2文字未満の数値の場合は、0がパディングされます。

于 2013-01-31T03:16:06.900 に答える