如何用c填充打印空间

时间:2014-01-26 06:32:33

标签: c

我编写了一个程序,创建一个随机数表,它应该只打印大于67的数字。我能够做到但是对于那些不大于67的数字我想填写它空间位置。现在我只有0%的“%-5d”,但我希望将该版本翻译成空格。我的表目前看起来像

0    56.75    0    34.65
0    0        0    0

所以一切都正确对齐。我如何在两者之间放置空格而不是0?

3 个答案:

答案 0 :(得分:3)

试试这个-----> printf("\t");

答案 1 :(得分:3)

有几个选项 -

  1. 如果您的数字不是很长,只需在每个数字后使用TAB(“\ t”)代替空格。如果数字可能很长,这并不总是有效,另一方面,一个微不足道的填充可能也不会起作用。

  2. 您可以计算所需的空格数量并进行简单的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("        ");

(如果你的问题还有更多,我似乎错过了。也许我读得太多了。)