C语言中使用制表符的输出布局问题

C语言中使用制表符的输出布局问题,c,C,我怎样才能确保不会发生这样的事情?有没有办法用数字来显示确切的位置 Name UID GID Dir Host root 0 0 /root paingpyi 500 500 /home/paingpyi 192.168.12.1 paingpyi 500 500 /home/paingpyi 192.168.12.1 代码是 printf("Name \

我怎样才能确保不会发生这样的事情?有没有办法用数字来显示确切的位置

Name            UID     GID     Dir     Host
root    0       0       /root
paingpyi        500     500     /home/paingpyi  192.168.12.1
paingpyi        500     500     /home/paingpyi  192.168.12.1
代码是

printf("Name \t\tUID \tGID \tDir \tHost\n");
printf("%s \t\t%d \t%d \t%s \t%s \n",up->ut_user,pw->pw_uid,pw->pw_gid,pw->pw_dir,up->ut_host);

printf
宽度说明符比
\t
更适合此类任务。您应该查看的“字段宽度”部分。

printf
宽度说明符比
\t
更适合此类任务。您应该查看。

的“字段宽度”部分。具体来说,他应该对字符串使用
%-16.16s
,对整数使用
%-8d
,如果我还想对标题进行格式化呢?我没有任何$s或$d作为标题行。我该怎么办?@Devyn您可以使用诸如
printf(“%-16s%-8s%-8s\n”、“Name”、“UID”、“GID”)
Wow。。我从来没有这样想过。这是一个很好的回答:)谢谢大家!具体来说,他应该对字符串使用
%-16.16s
,对整数使用
%-8d
,如果我还想对标题进行格式化呢?我没有任何$s或$d作为标题行。我该怎么办?@Devyn您可以使用诸如
printf(“%-16s%-8s%-8s\n”、“Name”、“UID”、“GID”)
Wow。。我从来没有这样想过。这是一个很好的回答:)谢谢大家!