Dans un exemple de "C Primer Plus", l'auteur a utilisé %ul
spécificateur de format (dans scanf et printf) pour long non signé. Lorsque j'essaie de généraliser le problème, il semble que le %ul
fait quelque chose de mal dans mon ordinateur. Mais en utilisant %lu
a résolu le problème.
En fait, plutôt que de me concentrer sur le problème et la ligne de codes, je veux connaître la différence entre %ul
et %lu
. Je pourrais peut-être comprendre ce qui ne va pas.
La recherche ne me donne pas quelque chose d'utile (sauf que "ils sont différents").
Toute explication ou lien/référence est appréciée.
%lu
est correct, tandis que %ul
est incorrect .
Un printf
spécificateur de format suit la forme %[flags][width][.precision][length]specifier
.
u
est un spécificateur signifiant "entier décimal non signé".
l
est un modificateur de longueur signifiant "long".
Le modificateur de longueur doit précéder le spécificateur de conversion , ce qui signifie %lu
est correct.