要实现无论第一个变量有多长,第二个变量都是对齐的效果,您可以使用 printf
的字段宽度来控制输出。在输出第一个变量后,使用字段宽度对第二个变量进行对齐,使得第二个变量始终在同一列上输出。
以下是一个示例代码,演示如何实现这种效果:
#include <stdio.h>
int main() {
int var1 = 42;
long var2 = 1234567890;
printf("%-15s 0x%016lx\n", "rax", (unsigned long)var1);
printf("%-15s 0x%016lx\n", "rbx", (unsigned long)var2);
return 0;
}
运行上述代码,会输出:
rax 0x000000000000002a
rbx 0x0000000046856342
在这个例子中,我们在 printf
中使用字段宽度来对齐输出。%-15s
表示字符串左对齐,并占用 15 个字符的宽度;0x%016lx
表示输出一个 16 位的十六进制数,并且使用 0 来填充前导位。
由于我们将 rax
和 rbx
的输出字段宽度都设置为 15 个字符,无论第一个变量 rax
的值是多少,rbx
都会在 rax
的值输出的右侧对齐。这样就实现了第二个变量固定从第五格输出的效果。