我想在 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
所以列不是等宽的。基本上,我想这样做,无论我的参数中的文本有多长,我的函数总是会打印出漂亮的格式化列。问题是:我该怎么做?
通过说nice我的意思是,无论我传递给打印函数多长的文本,它总是会打印出等宽的列,例如:
我的输出如下所示:
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