Appendix B. printf() Format Specifier Details
The formats supported by the printf() function almost comprise their
own language. While not an exhaustive list, this appendix details all of the
options I use throughout this book. I also describe how the options work
with the different types of output, even if I do not use a given combination.
As with so much of programming, it is useful to try stuff out yourself to see
how the pieces fit together.
The code examples include a simple C program that goes through the more popular combinations of flags, widths, precisions, and types. You can compile and run popular_formats.c as is, or you can edit it to tweak some of the lines and test your own combinations.
If you want to know even more about the things you can specify in printf(),
including nonstandard and implementation-specific options,
I recommend the Wikipedia page devoted to
just this topic.
Specifier Syntax
The specifier as I use it throughout this book contains three optional elements and one required type arranged like so:
% flag(s) width . precision type
Again, the flag (or flags), width, and precision are not required.
Specifier Types
How printf() interprets a given value to print depends on the type specifier
you use. The value 65, for example, would print as the letter “A”
with %c (characters) but as “41” with %x (hexadecimal integers).
Table B-1 summarizes the types we have used throughout
this book, although it is not an exhaustive list.