Como posso preencher uma string com espaços à esquerda ao usar printf?
Por exemplo, quero imprimir "Olá" com 40 espaços antes dele.
Além disso, a string que desejo imprimir consiste em várias linhas. Eu preciso imprimir cada linha separadamente?
EDIT: Só para ficar claro, eu quero exatamente 40 espaços impressos antes de cada linha.
fonte
Eu uso esta função para recuar minha saída (por exemplo, para imprimir uma estrutura de árvore). O
indent
é o número de espaços antes da string.fonte
printf(..., indent, "", ...)
)Esta instrução reservará uma linha de 40 caracteres, imprimirá a string no final da linha (removendo espaços extras de forma que o comprimento total da linha seja constante em 40). O mesmo pode ser usado para caracteres e inteiros da seguinte maneira:
Este método que usa um parâmetro para determinar espaços é útil quando um número variável de espaços é necessário. Essas instruções ainda funcionarão com literais inteiros da seguinte maneira:
Espero que isso ajude alguém como eu no futuro.
fonte
error: empty character constant
para''
. Não deveria ser' '
?"Hello"
poderia ser qualquer coisa, ele deveria ter usado um exemploSe você quiser exatamente 40 espaços antes da string, você deve apenas fazer:
Se estiver muito sujo, você pode fazer (mas será mais lento do que digitar manualmente os 40 espaços):
printf("%40s%s", "", myStr );
Se você deseja que a string seja alinhada na coluna 40 (ou seja, tenha até 39 espaços precedendo-o de forma que o caractere mais à direita esteja na coluna 40), faça o seguinte:
printf("%40s", myStr);
Você também pode colocar "até" 40 espaços APÓS a string, fazendo:
printf("%-40s", myStr);
fonte