【发布时间】:2016-07-29 02:30:48
【问题描述】:
有没有办法使用变量指定空格数?
例如,假设我有一个基本的打印语句:
printf("%5d",someNumber);
这将打印 5 个空格,然后是数字。有没有办法让我声明一个变量var = 5,并使用一个变量来确定间距?我问的原因是因为我试图控制每次循环迭代后的空格数以某种方式格式化数据
【问题讨论】:
有没有办法使用变量指定空格数?
例如,假设我有一个基本的打印语句:
printf("%5d",someNumber);
这将打印 5 个空格,然后是数字。有没有办法让我声明一个变量var = 5,并使用一个变量来确定间距?我问的原因是因为我试图控制每次循环迭代后的空格数以某种方式格式化数据
【问题讨论】:
试试:
printf("%*d", width, someNumber);
您可以通过man 3 printf找到更多信息
【讨论】:
"%5d" 打印至少 5 个字符。首先根据需要打印前导空格,然后是 '-' 符号,如果需要,然后是数字。
要打印带有至少个n字符的int,请使用'*',最小字段宽度:
printf("%*d", n, someNumber);
要仅打印n 空格,请使用
printf("%*s", n, "");
【讨论】:
格式字符串就是这样:一个字符串。您可以使用sprintf() 构建自己的,例如:
sprintf(frmt,"%%%dd",iterator);
如果iterator = 3 将给出格式字符串"%3d",您可以在printf() 中使用,例如:
printf(frmt,some_number);
(Jesse Chen发的可变字段宽度不一定随处可见)
【讨论】: