添加多于一个数字时 Printf 不对齐

Printf not aligned when more than one extra digit is added

我正在尝试在类似 table 的输出中对齐多个变量。 我目前正在使用填充,但看不到如何正确对齐输出。 我打印变量:

printf("\n %15s", name);
printf("%15d", level);

然后我反复调用下一个函数,一切正常,除非有一个以上的数字。

printf("%11dhr  %.1fmn",t,t2); 

将变量定义为 int t;float t2;(或 double t2;),就像现在一样 %.1f 打印 t2一位小数点后的数字。这是 精度说明符

对于对齐,您还需要包括 宽度说明符(要打印的最少字符数,如果可用的字符数较少,则用空格填充)。这应该包括小数点和精度数字。因此,如果 t2 的整数部分在以 2 个字符打印时适合,则需要将宽度设置为 4。对于给定的示例,这应该有效:

printf("%11dhr  %4.1fmn", t, t2);