chciałbym wydrukować kolumn za pomocą printf w C Napisałem ten kod:Print równa szerokości kolumn w C z użyciem formatowania 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;
}
To działa, ale mam taki wynik:
TXT1: a TXT2 bbbbbbbeeeeebbbbb TXT3 e
TXT1: aaaaaaaa TXT2 bbbbbbbbbbbb TXT3 abcde
Więc kolumny nie mają równej szerokości. Zasadniczo chciałbym sprawić, aby tak było, że bez względu na to, jak długi jest tekst w mojej argumentacji, moja funkcja ZAWSZE drukuje ładne sformatowane kolumny. Pytanie brzmi: jak mogę to zrobić?
od słów piękny miałem na myśli, że nie ważne jak długo tekst przechodzę do mojej funkcji drukowania, to zawsze wydrukować równej szerokości kolumn, na przykład:
mam to wyjście, które wygląda tak:
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
chcę wyglądać tak (bez względu na to, jak długo moje argumenty tekstowe będzie):
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
Określ * ładny * w * ładnie sformatowanych kolumnach *. – ouah
, więc najpierw przeskanuj swój tekst, znajdź najdłuższy ciąg znaków i użyj tej długości dla wartości wypełnienia kolumn. –
Prawdopodobnie duplikat http://stackoverflow.com/questions/2956296/printing-values-in-special-format-using-printf –