Tenho duas funções, uma que produz mensagens semelhantes Starting initialization...
e outra que verifica códigos de retorno e saídas "Ok"
, "Warning"
ou "Error"
. No entanto, a saída produzida é de comprimento diferente:
Starting initialization...Ok.
Checking init scripts...Ok.
Como posso obter algo assim:
Starting initialization... Ok.
Checking init scripts... Ok.
c
string
printf
pretty-print
psihodelia
fonte
fonte
-
, seus dados serão justificados à direita em um campo cuja largura você especificou.printf
permite a formatação com especificadores de largura. por exemploVocê usaria um especificador de largura negativa para indicar justificação à esquerda, porque o padrão é usar justificação à direita.
fonte
Além disso, se desejar a flexibilidade de escolher o
width
, você pode escolher entre um dos dois formatos a seguir (com ou sem truncamento):fonte
Também existe o
%n
modificador que pode ajudar em certas circunstâncias. Ele retorna a coluna em que a string estava até agora. Exemplo: você deseja escrever várias linhas que estão dentro da largura da primeira linha como uma tabela.imprimirá 2 colunas da mesma largura de qualquer comprimento que as duas strings
header1
eheader2
possam ter. Não sei se todas as implementações têm o,%n
mas o Solaris e o Linux têm.fonte
Há também a solução de baixa tecnologia de contar espaços adicionando manualmente para alinhar suas mensagens. Nada impede que você inclua alguns espaços à direita em suas strings de mensagem.
fonte
Comece com o uso de Tabs, o modificador de caractere \ t . Ele avançará para um local fixo (colunas, linguagem de terminal). No entanto, não ajuda se houver diferenças maiores do que a largura da coluna (4 caracteres, se bem me lembro).
Para corrigir isso, escreva seu "OK / NOK" usando um número fixo de Abas (5? 6 ?, tente), então retorne ( \ r ) sem new-lining e escreva sua mensagem.
fonte