March 22, 2005 Formatting strings into columns via format? | ||||
---|---|---|---|---|
| ||||
Since D is a lot more flexible than C, I was wondering if there is an elegant way to format data into certain columns, no matter how wide the strings actually are: printf(" \"%2d\" \"%-32.*s\" \"%-16.*s\"\n", game_weapcorr[j], game_list[j], game_weap[j]); yields e.g.: " 1" " killed @ by MOD_GAUNTLET " "Gauntlet " As one can see, the trailing "blanks" are a bit sub optimal. I'd perfer to format things like this: "1" " killed @ by MOD_GAUNTLET" "Gauntlet" Question: Is that possible using format parameters? I used to add calculated space() numbers to fix this: printf(" \"%2d\" %s \"%.*s\" %s \"%.*s\"\n", game_weapcorr[j], space(32-game_weapcorr.length), game_list[j], space(16-game_list.length), game_weap[j]); But that is not really elegant. Any ideas? AEon |
Copyright © 1999-2021 by the D Language Foundation