2011-03-16 3 views
25

estoy tratando de salida de algunos números en un archivo de registro y quiero almohadilla una carga de flotadores a través de la función de producir printf:¿Cómo relleno un printf para tener en cuenta los signos negativos y los números de longitud variable?

058.0 
020.0 
038.0 
-050.0 
800.0 
150.0 
100.0 

Actualmente estoy haciendo esto:

printf("% 03.1f\n", myVar); 

... donde myVar es un flotador. La salida de esta declaración es el siguiente:

58.0 
20.0 
38.0 
-50.0 
800.0 
150.0 
100.0 

De what I've read Yo esperaría mi código para producir la salida he mencionado al principio de este post, pero es evidente que algo está mal. ¿Puedes usar solo una bandera a la vez? ..¿O es que pasa algo más aquí?

+0

Probablemente debería estar usando C adecuado ++ corrientes de E/S si esto es _really_ una pregunta C++ . – paxdiablo

+4

Bien, es una C pregunta –

Respuesta

21

El especificador de ancho es el ancho completo:

printf("%05.1f\n", myVar); // Total width 5, pad with 0, one digit after . 

para obtener su formato esperado:

printf("% 06.1f\n", myVar); 
+1

Sí, eso es todo. No me había dado cuenta de que el relleno incluía el punto decimal, etc. ... aunque debe ser 06 para incluir el espacio o el valor del signo. –

Cuestiones relacionadas