¿Qué significa %.6d
en:¿Qué significa "% .6d" significa en printf
printf("%s.%.6d len:%d ", timestr, header->ts.tv_usec, header->len);
Es un error tipográfico?
Parece %.6d
es lo mismo que %6d
.
¿Qué significa %.6d
en:¿Qué significa "% .6d" significa en printf
printf("%s.%.6d len:%d ", timestr, header->ts.tv_usec, header->len);
Es un error tipográfico?
Parece %.6d
es lo mismo que %6d
.
%.6d
En el formato .precision para especificadores enteros (d, i, o, u, x, x), precisión especifica el número mínimo de dígitos a ser escrito. Si el valor a escribir es más corto que este número, el resultado es rellenado con ceros a la izquierda. El valor no se trunca aunque el resultado sea más largo.
%6d
La anchura (aquí 6) especifica el número mínimo de caracteres a imprimir. Si el valor que se imprimirá es más corto que este número, el resultado es rellenado con espacios en blanco. El valor no se trunca aunque el resultado sea más grande.
Ejemplo:
printf("%.6d\n%6d",1,1);
salidas:
000001
1
Entonces, ¿solo es diferente en relleno con ** ceros ** y ** espacios en blanco **? – user198729
Entonces '% .6d' es lo mismo que'% 06d'? Blech, escuchemos por consistencia. > _ < –
¿Entonces es '% .6d' lo mismo que'% 06d'? –
El ex almohadilla voluntad con ceros, este último con espacios.
#include <stdio.h>
int main(void) {
printf ("%.6d\n", 123);
printf ("%6d\n", 123);
return 0;
}
produce la siguiente salida,
00
123
¿Era realmente más fácil/más rápido para hacer esta pregunta en el SO que escribir un programa de prueba rápida (como los de las respuestas) y ejecutarlo para ver ¿la diferencia? – tomlogic
Ni siquiera necesita un programa. Simplemente ejecuta 'printf '% .6d \ n' 1234' en bash. –