web-dev-qa-db-fra.com

Quelle est la différence entre les spécificateurs de format% ul et% lu C?

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.

10
pedyram

%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.

36