1

我在想可能有一个“技巧”来复合printf()?

或者像这样的例子......

float x;
printf("%.1f %.1f %.1f %.1f \n", x, x, x, x );

像这样

float x;
printf("%.1f %.1f %.1f %.1f \n", magicArrayOfxAmountofx);

(我知道这是错误的——我主要是为了美观和神奇的目的,我在想如果它是相同的值,必须有一个“技巧”将右侧复合printf()到一个变量中?也许是一个数组?作为我的变量name 比它长得多x,我想保持它的名称不变,不要让这printf()条线太长!)

4

2 回答 2

6

就在这里。在 POSIX 系统上,printf()允许您使用n$转换说明符中的修饰符指定应打印的参数,其中n表示要打印的参数的编号,从 1 开始。你可以利用这个事实:

printf("%1$f %1$f %1$f %1$f\n", 1.0f);
于 2013-02-07T07:19:48.300 回答
0

不完全是您所要求的,但在这个特定的示例中,看起来您最好使用循环,以减少格式字符串和变量列表中的代码重复。就像是:

for(k=0; k<4; ++k)
    printf("%.1f ", x);
printf("\n")

(当然,如果您要经常这样做,无论如何您都希望将该代码放入函数中。)

于 2013-02-07T07:35:45.710 回答