I have a dummy question. I would like to print an integer into a buffer padding with 0 but I cannot sort it out the sprintf
format.
I am trying the following
char buf[31];
int my_val = 324;
sprintf( buf, "%d030", my_val );
hoping to have the following string
"000000000000000000000000000324"
what am I doing wrong? It doesn't mean pad with 0 for a max width of 30 chars?
"%030d"
is the droid you are looking for
You got the syntax slightly wrong; The following code produces the desired output:
char buf[31];
int my_val = 324;
sprintf( buf, "%030d", (int)my_val );
From Wikipedia's Article on Printf:
[...] printf("%2d", 3) results in " 3", while printf("%02d", 3) results in "03".
The padding and width come before the type specifier:
sprintf( buf, "%030d", my_val );
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With