Qu'est-%.6d
signifie en:Que signifie "% .6d" signifie dans printf
printf("%s.%.6d len:%d ", timestr, header->ts.tv_usec, header->len);
Est-ce une faute de frappe? Il semble %.6d
est le même que %6d
.
Qu'est-%.6d
signifie en:Que signifie "% .6d" signifie dans printf
printf("%s.%.6d len:%d ", timestr, header->ts.tv_usec, header->len);
Est-ce une faute de frappe? Il semble %.6d
est le même que %6d
.
%.6d
Dans le format .precision pour spécificateurs d'entiers (d, i, o, u, x, X), la précision spécifie le nombre minimal de chiffres à écrire. Si la valeur à écrire est plus courte que ce nombre, le résultat est avec les zéros à gauche. La valeur n'est pas tronquée même si le résultat est plus long.
%6d
La largeur (ici 6) spécifie le nombre minimal de caractères à imprimer. Si la valeur à imprimer est plus courte que ce nombre, le résultat est rembourré avec des espaces. La valeur n'est pas tronquée même si le résultat est plus grand.
Exemple:
printf("%.6d\n%6d",1,1);
sorties:
000001
1
Donc, il est seulement différent dans le remplissage avec ** zéros ** et ** blancs **? – user198729
Donc '% .6d' est le même que'% 06d'? Blech, écoutons pour la cohérence. > _ < –
Est-ce que '% .6d' est identique à'% 06d'? –
Le tampon ancien volonté avec des zéros, ce dernier avec des espaces.
#include <stdio.h>
int main(void) {
printf ("%.6d\n", 123);
printf ("%6d\n", 123);
return 0;
}
produit la sortie suivante,
00
123
était-il vraiment plus facile/plus rapide de poser cette question sur le SO que d'écrire un programme de test rapide (comme ceux dans les réponses) et l'exécuter pour voir la différence? – tomlogic
Vous n'avez même pas besoin d'un programme. Exécutez 'printf '% .6d \ n' 1234' dans bash. –