打印空格数

Printing number of spaces

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

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

printf("%5d",someNumber);

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

尝试:

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

您可以通过 man 3 printf

找到更多信息

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

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

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

printf(frmt,some_number);

(Jesse Chen贴的可变字段宽度不一定到处都有)

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

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

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

要仅打印 n 个空格,请使用

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