How to format strings using printf() to get equal length in the output

c, pretty-print, printf, string

Solution

You can specify a width on string fields, e.g.

printf("%-20s", "initialization...");

And then whatever's printed with that field will be blank-padded to the width you indicate.

The `-` left-justifies your text in that field.

Problem

I have two functions, one which produces messages like `Starting initialization...` and another which checks return codes and outputs `"Ok"`, `"Warning"` or `"Error"`. However, the output that is produced is of the different length: ``` Starting initialization...Ok. Checking init scripts...Ok. ``` How can I get something like the following? ``` Starting initialization... Ok. Checking init scripts... Ok. ```

Original source