【问题标题】:Printing number of spaces打印空格数
【发布时间】:2016-07-29 02:30:48
【问题描述】:

有没有办法使用变量指定空格数?

例如,假设我有一个基本的打印语句:

printf("%5d",someNumber);

这将打印 5 个空格,然后是数字。有没有办法让我声明一个变量var = 5,并使用一个变量来确定间距?我问的原因是因为我试图控制每次循环迭代后的空格数以某种方式格式化数据

【问题讨论】:

    标签: c loops tabs spaces


    【解决方案1】:

    试试:

     printf("%*d", width, someNumber);
    

    您可以通过man 3 printf找到更多信息

    【讨论】:

    • 这个格式字符串表示最小宽度,包括数字是'width'而不是数字前会有'width'空格。
    【解决方案2】:

    "%5d" 打印至少 5 个字符。首先根据需要打印前导空格,然后是 '-' 符号,如果需要,然后是数字。

    要打印带有至少n字符的int,请使用'*'最小字段宽度:

     printf("%*d", n, someNumber);
    

    要仅打印n 空格,请使用

     printf("%*s", n, "");
    

    【讨论】:

      【解决方案3】:

      格式字符串就是这样:一个字符串。您可以使用sprintf() 构建自己的,例如:

      sprintf(frmt,"%%%dd",iterator);
      

      如果iterator = 3 将给出格式字符串"%3d",您可以在printf() 中使用,例如:

      printf(frmt,some_number);
      

      (Jesse Chen发的可变字段宽度不一定随处可见)

      【讨论】:

        猜你喜欢
        • 2016-09-05
        • 2016-07-06
        • 1970-01-01
        • 1970-01-01
        • 2014-10-25
        • 2011-04-30
        • 1970-01-01
        • 1970-01-01
        • 2016-08-12
        相关资源
        最近更新 更多