Tengo dos funciones, una que produce mensajes como Starting initialization...
y otra que verifica códigos de retorno y salidas "Ok"
, "Warning"
o "Error"
. Sin embargo, la salida que se produce es de diferente longitud:
Starting initialization...Ok.
Checking init scripts...Ok.
¿Cómo puedo conseguir algo como esto?
Starting initialization... Ok.
Checking init scripts... Ok.
c
string
printf
pretty-print
psihodelia
fuente
fuente
-
, sus datos estarán justificados a la derecha en un campo cuyo ancho haya especificado.printf
permite formatear con especificadores de ancho. p.ejUsaría un especificador de ancho negativo para indicar la justificación a la izquierda porque el valor predeterminado es usar la justificación a la derecha.
fuente
Además, si desea la flexibilidad de elegir
width
, puede elegir entre uno de los dos formatos siguientes (con o sin truncamiento):fuente
También está el
%n
modificador que puede ayudar en determinadas circunstancias. Devuelve la columna en la que estaba la cadena hasta ahora. Ejemplo: desea escribir varias filas que estén dentro del ancho de la primera fila como una tabla.imprimirá 2 columnas del mismo ancho de cualquier longitud que las dos cadenas
header1
yheader2
puede tener. No sé si todas las implementaciones tienen el%n
pero Solaris y Linux sí.fuente
También existe la solución de baja tecnología de contar y agregar espacios a mano para alinear sus mensajes. Nada le impide incluir algunos espacios finales en las cadenas de sus mensajes.
fuente
Comience con el uso de Tabs, el modificador de carácter \ t . Avanzará a una ubicación fija (columnas, jerga de la terminal). Sin embargo, no ayuda si hay diferencias de más del ancho de la columna (4 caracteres, si mal no recuerdo).
Para solucionarlo, escribe tus cosas "OK / NOK" usando un número fijo de pestañas (5? 6 ?, pruébalo), luego regresa ( \ r ) sin una nueva línea y escriba su mensaje.
fuente