【问题标题】:Have a value be printed with a varying number of spaces before it?是否打印了一个带有不同数量空格的值?
【发布时间】:2012-09-09 04:09:18
【问题描述】:

这可能吗?因此,如果我要打印一个值,我可以在实际输出之前使用 3 个空格而不是 4 个空格来打印它?

【问题讨论】:

  • 是的,有可能。你试过什么?
  • 递增连接函数,在末尾添加空间。
  • 我可以从一堆空格开始并减少值吗?我的意思是从 10 个空格开始,以 0 结尾。
  • 你说的是数字吗?文本?您要打印的值的类型是什么?
  • 如果您向我们展示代码示例会有所帮助,因此您可以获得更好的答案。但从这里听起来也可以。

标签: c spaces


【解决方案1】:

printf 有一个 * 格式,用于动态指定最小字段宽度:

#include <stdio.h>
int main(int argc, char *argv[])
{
    int value = 5;
    const char *name = "LaDonna";
    double value2 = 200.55;
    const char *space = " ";
    for (int width = 0; width < 10; width++)
        printf("%*d %*.2f %*s\n",width,value,width,value2,width + 5,name);
    for (int width=1; width < 5; width++)
        printf("%*s%d\n",width,space,width);
    return 0;
}

输出:

5 200.55 LaDonna
5 200.55 LaDonna
 5 200.55 LaDonna
  5 200.55  LaDonna
   5 200.55   LaDonna
    5 200.55    LaDonna
     5 200.55     LaDonna
      5  200.55      LaDonna
       5   200.55       LaDonna
        5    200.55        LaDonna
 1
  2
   3
    4

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-30
    • 2015-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多