Jak mogę wypełnić ciąg spacjami po lewej stronie, używając printf?
Na przykład chcę wydrukować „Hello” z 40 spacjami przed nim.
Ponadto ciąg, który chcę wydrukować, składa się z wielu wierszy. Czy muszę drukować każdą linię osobno?
EDYCJA: Żeby było jasne, chcę wydrukować dokładnie 40 spacji przed każdym wierszem.
źródło
Używam tej funkcji do wcięcia mojego wyniku (na przykład do wydrukowania struktury drzewa). Jest
indent
to liczba spacji przed łańcuchem.źródło
printf(..., indent, "", ...)
)Ta instrukcja zarezerwuje wiersz z 40 znakami, wypisze łańcuch na końcu wiersza (usuwając dodatkowe spacje, tak aby całkowita długość wiersza była stała i wynosiła 40). To samo można zastosować do znaków i liczb całkowitych w następujący sposób:
Ta metoda wykorzystująca parametr do określenia przestrzeni jest przydatna, gdy wymagana jest zmienna liczba przestrzeni. Te instrukcje będą nadal działać z literałami całkowitymi w następujący sposób:
Mam nadzieję, że to pomoże komuś takiemu jak ja w przyszłości.
źródło
error: empty character constant
za''
. Nie powinno być' '
?"Hello"
mogłoby być cokolwiek, powinien był użyć przykładuJeśli chcesz dokładnie 40 spacji przed łańcuchem, powinieneś po prostu zrobić:
Jeśli to jest zbyt brudne, możesz to zrobić (ale będzie to wolniejsze niż ręczne wpisanie 40 spacji):
printf("%40s%s", "", myStr );
Jeśli chcesz, aby ciąg był ustawiony w kolumnie 40 (to znaczy mieć do 39 spacji poprzedzających go tak, że skrajny prawy znak znajduje się w kolumnie 40), zrób to:
printf("%40s", myStr);
Możesz także wstawić „do” 40 spacji ZA napisem, wykonując:
printf("%-40s", myStr);
źródło