¿Cómo puedo rellenar una cadena con espacios a la izquierda cuando uso printf?
Por ejemplo, quiero imprimir "Hola" con 40 espacios antes.
Además, la cadena que quiero imprimir consta de varias líneas. ¿Necesito imprimir cada línea por separado?
EDITAR: Para que quede claro, quiero imprimir exactamente 40 espacios antes de cada línea.
fuente
Utilizo esta función para sangrar mi salida (por ejemplo, para imprimir una estructura de árbol). El
indent
es el número de espacios antes de la cadena.fuente
printf(..., indent, "", ...)
)Esta declaración reservará una fila de 40 caracteres, imprimirá una cadena al final de la fila (eliminando espacios adicionales de modo que la longitud total de la fila sea constante en 40). Lo mismo se puede usar para caracteres y números enteros de la siguiente manera:
Este método que utiliza un parámetro para determinar espacios es útil cuando se requiere un número variable de espacios. Estas declaraciones seguirán funcionando con literales enteros de la siguiente manera:
Espero que esto ayude a alguien como yo en el futuro.
fuente
error: empty character constant
por''
. ¿No debería serlo' '
?"Hello"
podría ser cualquier cosa, debería haber usado un ejemploSi desea exactamente 40 espacios antes de la cadena, simplemente debe hacer:
Si eso está demasiado sucio, puede hacerlo (pero será más lento que escribir manualmente los 40 espacios):
printf("%40s%s", "", myStr );
Si desea que la cadena se alinee en la columna 40 (es decir, que tenga hasta 39 espacios a continuación de manera que el carácter más a la derecha esté en la columna 40), haga esto:
printf("%40s", myStr);
También puede poner "hasta" 40 espacios DESPUÉS de la cadena haciendo:
printf("%-40s", myStr);
fuente