在C中有推荐的方式来选择我的输出,以便它实际上与数据对齐吗?我目前正在使用下面可以查看的转义序列\ t。有没有一种推荐的方式来将标题与C中的数据输出对齐?
#include <stdio.h>
int main()
{
int i;
int meatBalls[5] = {1, 2, 3, 4, 5};
printf("\tElement \t Address \t Value \n");
for(i=0; i < 5; i++) {
printf("meatBalls[%d] \t %p \t %d \n", i, &meatBalls[i], meatBalls[i]);
}
return 0;
}
这是我的电流输出,正如你所看到的标题不对齐在正确的方向
Element Address Value
meatBalls[0] 0x7fff547d0640 1
meatBalls[1] 0x7fff547d0644 2
meatBalls[2] 0x7fff547d0648 3
meatBalls[3] 0x7fff547d064c 4
meatBalls[4] 0x7fff547d0650 5
您应该查看printf格式字符串中的对齐选项。像这样的东西可能会有所帮助:https://stackoverflow.com/questions/13548785/custom-string-alignment-using-printf-in-c –
请注意,'%p'正在输出一个实现特定的字符串。所以你原则上不可能知道它的宽度。有趣的是,任何'%p'格式都是*特定实现* –
请注意,您应该将参数转换为%p到'void *'](https://stackoverflow.com/questions/24867814/printfp-and-casting-to -void),或者行为未定义。 –