我编写了一个程序,创建一个随机数表,它应该只打印大于67的数字。我能够做到但是对于那些不大于67的数字我想填写它空间位置。现在我只有0%的“%-5d”,但我希望将该版本翻译成空格。我的表目前看起来像
0 56.75 0 34.65
0 0 0 0
所以一切都正确对齐。我如何在两者之间放置空格而不是0?
答案 0 :(得分:3)
试试这个-----> printf("\t");
答案 1 :(得分:3)
有几个选项 -
如果您的数字不是很长,只需在每个数字后使用TAB(“\ t”)代替空格。如果数字可能很长,这并不总是有效,另一方面,一个微不足道的填充可能也不会起作用。
您可以计算所需的空格数量并进行简单的for循环,或生成适当的printf格式(请参阅接受的答案https://stackoverflow.com/questions/276827/string-padding-in-c)
答案 2 :(得分:2)
您可以将字段宽度应用于字符串,甚至是空字符串:
if (x > 67) {
printf("%*s", width, "");
} else {
printf("%*.2f", width, x);
}
当然,如果你知道场宽,那就有点过分了;只需使用
printf(" ");
(如果你的问题还有更多,我似乎错过了。也许我读得太多了。)