Я хотел бы печатать столбцы с помощью printf в C. Я написал этот код:
#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