我想在 C 中使用 printf 打印列。我写了这段代码:
#include <stdio.h>
void printme(char *txt1, char *txt2, char *txt3)
{
printf("TXT1: %9s TXT2 %9s TXT3 %9s\n", txt1, txt2, txt3);
}
int main()
{
printme("a","bbbbbbbeeeeebbbbb","e");
printme("aaaaaaaa","bbbbbbbbbbbb","abcde");
return 0;
}
它有效,但我有这样的输出:
TXT1: a TXT2 bbbbbbbeeeeebbbbb TXT3 e
TXT1: aaaaaaaa TXT2 bbbbbbbbbbbb TXT3 abcde
所以列不等宽。基本上,我想让它像这样,无论我的参数中的文本有多长,我的函数总是会打印出一个很好的格式化列。问题是:我该怎么做?
说得好,我的意思是无论我传递给打印函数的文本有多长,它总是会打印出等宽的列,例如:
我的输出如下所示:
a cd` fg ij
a cd fg ij
a cd fg ij
ab cd fg ij
ab cd fg i j
ab cd fg ij
ab cd fg ij
ab cde fgh ij
ab cde fgh ij
我希望它看起来像这样(无论我的文本参数有多长):
a cd` fg ij
a cd fg ij
a cd fg ij
ab cd fg ij
ab cd fg ij
ab cd fg ij
ab cd fg ij
ab cde fgh ij
ab cde fgh ij