You need to use %02d
if you want leading zeroes padded to two spaces:
printf ("%02d : %02d : %02d\n", hour, minute, second);
See for example the following complete program:
#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;
}
which outputs:
Time is 03:01:04.000159
Keep in mind that the %02d
means two characters minimum width so it would output 123 as 123
. That shouldn’t be a problem if your values are valid hours, minutes and seconds, but it’s worth keeping in mind because many inexperienced coders seem to make the mistake that 2 is somehow the minimum and maximum length.