无论每个字符串的大小如何,我都无法让这个字符串很好地均匀分布到列中。我尝试了不同的格式和其他东西;它只是不工作。该函数的工作方式是,在 printCompanyTable
工作之前,还有另一个函数更新您在下面看到的所有字符串变量,所以我猜这就是问题所在,我想。
int printCompanyInfo() { // this will print out the format for as long as I need it.
char discount[30];
char tax[30];
if (discountTypeLookup == 0) {
strcpy_s(discount, 30, "Not Applicable");
}
else if (discountTypeLookup == 1) {
strcpy_s(discount, 30, "before Tax");
}
else if (discountTypeLookup == 2) {
strcpy_s(discount, 30, "After Tax");
}
else if (discountTypeLookup == 3) {
strcpy_s(discount, 30, "Before Tax > 14,500");
}
if (payTaxLookup == 0) {
strcpy_s(tax, 30, "No");
}
else if (payTaxLookup == 1) {
strcpy_s(tax, 30, "Yes");
}
printf_s("%s %s %f %s %s %s\n", companyId, companyNameLookup, discountRateLookup, discount, tax, pickUpBayLookup);
return(0);
}
最佳答案
除了在 link 中接受的答案由 Japu_D_Cret 提供,如果您使用 %-30s
它将把字符串格式化为 30 个字符,但如果字符串更长,它将打印所有这些...
试试这个:
printf_s("%s %s %f %-30.30s %-30.30s %s\n", companyId, companyNameLookup, discountRateLookup, discount, tax, pickUpBayLookup);
使用 .
意味着它将把字符串格式化为恰好 30 个字符,而 -
意味着字符串将左对齐(默认为右对齐)。
编辑:调整代码以反射(reflect)@Jonathan Leffler 所做的更正
关于c - 将字符串格式化为 C 中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43022596/