Je n'arrive jamais à comprendre comment imprimer le type de données unsigned long
en C.
Supposons que unsigned_foo
est un unsigned long
, alors j'essaie:
printf("%lu\n", unsigned_foo)
printf("%du\n", unsigned_foo)
printf("%ud\n", unsigned_foo)
printf("%ll\n", unsigned_foo)
printf("%ld\n", unsigned_foo)
printf("%dl\n", unsigned_foo)
Et tous affichent une sorte de numéro -123123123
au lieu de unsigned long
que j'ai.
%lu
est le format correct pour unsigned long
. On dirait qu'il y a d'autres problèmes en jeu ici, tels que la corruption de mémoire ou une variable non initialisée. Peut-être nous montrer une image plus grande?
%lu
for nsigned long%llu
pour nsigned long longPour int%d
Pour long int%ld
Pour long long int%lld
Pour nsigned long long int%llu
Parmi toutes les combinaisons que vous avez essayées, %ld
et %lu
sont les seules qui soient des spécificateurs de format printf valides. %lu
(décimal long non signé), %lx
ou %lX
(hex long avec lettres minuscules ou majuscules) et %lo
(octal long) sont les seuls spécificateurs de format valides pour une variable de type unsigned long (vous pouvez bien sûr ajouter de la largeur, de la précision, du champ, etc.) etc modificateurs entre le %
et le l
).
Le format est %lu
.
Veuillez vérifier les différents autres types de données et leur utilisation dans printf here
int main()
{
unsigned long long d;
scanf("%llu",&d);
printf("%llu",d);
getch();
}
Ce sera utile. . .
Le spécificateur correct pour unsigned long est %lu
.
Si vous n'obtenez pas la valeur exacte que vous attendez, il peut y avoir des problèmes dans votre code.
Veuillez copier votre code ici. Alors peut-être que quelqu'un peut mieux vous dire quel est le problème.