C 无法正确对齐printf代码
当我尝试用C语言打印时,我似乎无法使它正确对齐。我已经尝试了很长一段时间,但一直无法在网上找到任何帮助。 有人能解释一下为什么这不起作用,我应该怎么做 我想把它们正确地对齐。。 页眉打印C 无法正确对齐printf代码,c,styles,alignment,printf,C,Styles,Alignment,Printf,当我尝试用C语言打印时,我似乎无法使它正确对齐。我已经尝试了很长一段时间,但一直无法在网上找到任何帮助。 有人能解释一下为什么这不起作用,我应该怎么做 我想把它们正确地对齐。。 页眉打印 void print_header(){ printf("-------------------------------------------------------------------------------------------------------\n"); printf("%-20s%-27
void print_header(){
printf("-------------------------------------------------------------------------------------------------------\n");
printf("%-20s%-27s%-12s%-12s%-12s%-12s%-12s\n", "RACE NAME", "FULDE NAVN", "ALDER", "HOLD", "NATION", "PLADS", "TID");
printf("-------------------------------------------------------------------------------------------------------\n");
}您可以将“FULDE NAVN”
打印为标题的“%-27s”
。但是将名字和姓氏打印为“%s%-22s”
。这些格式不一样,如果名字超过4个字符,就会出现问题
我建议您为全名列创建一个临时字符串,并将其作为单个字符串打印
也许像
char full_name[28];
snprintf(full_name, sizeof(full_name), "%s %s",
cyclist[i]->first_name, cyclist[i]->last_name);
printf("%-20s%-27s%-12d%-12s%-12s%-12s%-12s\n",
cyclist[i]->race_name, full_name, cyclist[i]->age, ...);
现在,标题和数据打印输出的格式将相同。第二个
%s
中没有数字
printf("%-20s%s %-22s%-12d"
"%-12s%-12s%-12s%-12s\n",
应改为
printf("%-20s%10s %-22s%-12d"
"%-12s%-12s%-12s%-12s\n",
然后,当然,标题的其余部分需要对齐
我的建议是:a)将formatStr保存为一个变量,该变量与行的标题使用的变量相同;b)将名称格式化为自己的字符串
sprintf(全名,“%s%s”,first\u name,last\u name)
使用first和last name创建一个字符串
这样做:
printf("%-20s%-27s%-12d"
"%-12s%-12s%-12s%-12s\n",
"race_name", "first_name last_name", 25,
"team", "nation", "placement", "race_time");
我发现这和我的名字和姓氏都有关系。。。删除其中一个会使列表对齐,但似乎无法使两者同时存在。。。。。
printf("%-20s%-27s%-12d"
"%-12s%-12s%-12s%-12s\n",
"race_name", "first_name last_name", 25,
"team", "nation", "placement", "race_time");