- First, I'm confused. The docs say 's' is "whatever it needs to be". ("he corresponding argument is formatted in a manner consistent with its type:") But what if I specifically want a STRING. Because I only see floats, ints, etc. No forced string types.

 - Second,

This works fine in D:

    printf("%-*s|", col.width-1, col.name.toStringz());

It's a left-aligned, string with a minimum width from the first argument, col.width. (-1 because I'm throwing a pipe symbol on the end.)

Now with writefln:

    writefln("%-*s|", col.width-1, col.name);

Same format specifier, except I don't need a toStringz which is nice. Except it doesn't work and tries to decode col.width-1 into a hexadecimal number and only prints that. ("4D6EF6")

I looked through the docs:

https://dlang.org/phobos/std_format.html

 '%' Position Flags Width Separator Precision FormatChar

Width:
    empty
    Integer
    '*'

But there are then zero examples or explanations of how to use that option. What's going on here?

Reply via email to