Comment imprimer « long non signé » en C ?
-
13-09-2020 - |
Question
Je n'arrive jamais à comprendre comment imprimer unsigned long
type de données en C.
Supposer unsigned_foo
est un unsigned long
, alors j'essaye :
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 impriment une sorte de -123123123
numéro au lieu de unsigned long
que j'ai.
La solution
%lu
est le format correct pour unsigned long
.On dirait qu'il y a d'autres problèmes en jeu ici, tels qu'une corruption de la mémoire ou une variable non initialisée.Peut-être nous montrer une image plus grande ?
Autres conseils
%lu
pour non signé depuis longtemps%llu
pour non signé depuis longtemps
Pour int %d
Pour long int %ld
Pour long long int %lld
Pour non signé long long int %llu
Parmi toutes les combinaisons que vous avez essayées, %ld
et %lu
sont les seuls à être des spécificateurs de format printf valides. %lu
(décimal long non signé), %lx
ou %lX
(hexagonal long avec des lettres minuscules ou majuscules), et %lo
(octal long) sont les seuls spécificateurs de format valides pour une variable de type unsigned long (bien sûr, vous pouvez ajouter des modificateurs de largeur de champ, de précision, etc. entre les %
et le l
).
int main()
{
unsigned long long d;
scanf("%llu",&d);
printf("%llu",d);
getch();
}
Cela sera utile...
Le format est %lu
.
Veuillez vérifier les différents autres types de données et leur utilisation dans printf ici
Le spécificateur correct pour unsigned long est %lu
.
Si vous n'obtenez pas la valeur exacte que vous attendez, il se peut qu'il y ait des problèmes dans votre code.
Veuillez copier votre code ici.Alors peut-être que quelqu'un pourra mieux vous dire quel est le problème.
J'ai eu le même problème.Essayez "%ul", ça marche pour moi.