specifiers sintaxis significado para online number formatos formato float especificadores espacio enteros dev arithmetic c floating-point floating-point-conversion

sintaxis - printf y scanf



Formato de printf float con relleno (2)

El siguiente código de prueba produce una salida no deseada, aunque utilicé un parámetro de ancho:

int main(int , char* []) { float test = 1234.5f; float test2 = 14.5f; printf("ABC %5.1f DEF/n", test); printf("ABC %5.1f DEF/n", test2); return 0; }

Salida

ABC 1234.5 DEF ABC 14.5 DEF

¿Cómo lograr una salida como esta, qué cadena de formato usar?

ABC 1234.5 DEF ABC 14.5 DEF


Estás intentando imprimir algo más ancho que 5 caracteres, así que haz que tu especificador de longitud sea más grande:

printf("ABC %6.1f DEF/n", test); printf("ABC %6.1f DEF/n", test2);

El primer valor no es "dígitos antes del punto", sino "longitud total".


Lo siguiente debe alinear todo correctamente:

printf("ABC %6.1f DEF/n", test); printf("ABC %6.1f DEF/n", test2);

Cuando ejecuto esto, me sale:

ABC 1234.5 DEF ABC 14.5 DEF

El problema es que, en %5.1f , el 5 es el número de caracteres asignados para el número completo, y 1234.5 toma más de cinco caracteres. Esto da lugar a una desalineación con 14.5 , que se ajusta a cinco caracteres.