所以我想像我这样调整输出:
John Smith Age: 34 Gender: M
Micheal Smith Age: 9 Gender: F
等等
我有一个包含此信息的数组,我遍历它并打印信息:
for (int i = 0; i < ARRAY_LENGTH; i++) {
printf ("%s Age: %d Gender: \n", person[i].name, person[i].age, person[i].gender);
}
我被困在如何使它对齐所以所有空间都是均匀的。
由于
答案 0 :(得分:3)
如果您查看printf()的手册,请注意您可以执行%-18s和%2d之类的操作 - 在格式组中放置字段宽度和对齐方式。
所以我会做类似
的事情printf("%-20s Age:%3d Gender: %1s",
person[i].name, person[i].age, person[i].gender);
哪个应该很适合你。
答案 1 :(得分:2)
如果你为%添加一个宽度格式,那应该会让你到那里。所以你可以使用%10s和%5d之类的东西。 取决于您想要的数字空间。此外,您还想使用某种等宽字体。
答案 2 :(得分:1)
printf
允许您在格式说明符中指定填充,您可以将左边距的数量提供为数字x,使得说明符看起来像%xs
,或右边填充{{1} },这样说明符看起来像-x
。
在您的情况下,您可以执行以下操作:
%-xs