Estoy tratando de formatear algunas instrucciones printf para permitir niveles de indentación arbitrarios. Lo ideal es que quiera la siguiente salida donde "Uno", "Dos", etc. son marcadores de posición para mensajes de registro de longitud variable.Espacio de longitud variable utilizando printf
One
Two
Three
Two
One
estoy trabajando en el espaciamiento de longitud variable requerida para la sangría, y sé que puedo hacer lo siguiente:
printf("%*s", indent_level, "");
pero me pregunto si hay una manera de hacerlo sin la segunda cadena vacía arg.
Buena sugerencia, pero la cadena de salida también es de longitud variable: printf ("% * s% d,% d,% d,% s, CHARAS CONSTANTES,% p \ n", indent_level, "",. ..); Es un dolor determinar la longitud de esa cadena sin usar un buffer intermedio. – bvanvugt
Solo debe conocer la duración del primer parámetro, p. podría usar printf ("% * d,% d, ...", indent_level, param1, ...) – adamk
La primera vez que uso ese tipo de letra de printf, ¿puede explicar por qué está usando indent_level + strlen (mystr)? –