有没有办法使用变量指定空格数?
例如,假设我有一个基本的打印声明:
printf("%5d",someNumber);
这将打印5个空格然后打印数字。有没有办法让我声明变量var = 5
,并使用变量来确定间距?我问的原因是因为我试图在循环的每次迭代之后控制空格的数量以某种方式格式化数据
答案 0 :(得分:1)
尝试:
printf("%*d", width, someNumber);
您可以在man 3 printf
答案 1 :(得分:1)
"%5d"
打印至少 5个字符。首先根据需要打印前导空格,然后是'-'
符号(如果需要),然后是数字。
要使用至少 int
字符打印n
,请使用'*'
,最小字段宽度:
printf("%*d", n, someNumber);
要仅打印n
个空格,请使用
printf("%*s", n, "");
答案 2 :(得分:0)
格式字符串就是:一个字符串。您可以使用sprintf()
建立自己的,例如:
sprintf(frmt,"%%%dd",iterator);
如果iterator = 3
将提供您可以在"%3d"
中使用的格式字符串printf()
,例如:
printf(frmt,some_number);
(Jesse Chen发布的变量字段宽度不一定随处可用)