Comment imprimer "unsigned long" en C?
Je ne peux jamais comprendre comment imprimer unsigned long
Type de données en C.
Supposons que unsigned_foo
est un unsigned long
, alors je tente:
printf("%lun", unsigned_foo)
printf("%dun", unsigned_foo)
printf("%udn", unsigned_foo)
printf("%lln", unsigned_foo)
printf("%ldn", unsigned_foo)
printf("%dln", unsigned_foo)
Et tous impriment une sorte de numéro -123123123
au lieu de unsigned long
que j'ai.
7 réponses
%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 la mémoire ou une variable non initialisée. Peut-être nous montrer une image plus grande?
Parmi toutes les combinaisons que vous avez essayées, %ld
et %lu
sont les seules qui sont des spécificateurs de format printf valides. %lu
(décimal long non signé), %lx
ou %lX
(hexadécimal 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 (bien sûr, vous pouvez ajouter des modificateurs de largeur de champ, de précision, etc. entre le %
et le l
).
Pour int %d
Pour long int %ld
Pour long long int %lld
Pour unsigned long long int %llu
int main()
{
unsigned long long d;
scanf("%llu",&d);
printf("%llu",d);
getch();
}
Cela sera utile . . .
Le spécificateur correct pour unsigned long est %lu
.
Si vous n'obtenez pas la valeur exacte vous attendent alors il peut y avoir quelques problèmes dans votre code.
Veuillez copier votre code ici. Alors peut-être que quelqu'un peut vous dire mieux quel est le problème.