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.

Table B-1. Format ...

Get Smaller C now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.