Я хотел бы напечатать столбцы, используя Printf в C. Я написал этот код:печати равной ширины столбцов в 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
Значения столбцов не равны. В основном, я хотел бы сделать так, что независимо от того, как долго текст в моем аргументе, моя функция ВСЕГДА распечатывает красивые форматированные столбцы. Вопрос в том, как я могу это сделать?
По saing хорошего Я имел в виду, что независимо от того, сколько времени текста переходит к моей функции печати, она всегда будет печатать равную ширину столбцов, например:
У меня есть этот вывод, который выглядит следующим образом:
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
Определить * nice * in * nice formatted columns *. – ouah
, так что сканируйте свой текст заранее, выясните, какая самая длинная строка, и используйте эту длину для значений заполнения столбца. –
Возможно дубликат http://stackoverflow.com/questions/2956296/printing-values-in-special-format-using-printf –