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.

277
demandé sur Tardis 2010-07-09 08:46:47

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?

409
répondu Thanatos 2010-07-09 04:50:19

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

20
répondu R.. 2010-07-09 06:00:14
  • %lu pour unsigned long
  • %llu pour unsigned long long
17
répondu NealCaffery 2014-07-12 15:01:16

Pour int %d

Pour long int %ld

Pour long long int %lld

Pour unsigned long long int %llu

13
répondu Linkon 2017-04-07 10:31:44
int main()
{
    unsigned long long d;
    scanf("%llu",&d);
    printf("%llu",d);
    getch();
}

Cela sera utile . . .

8
répondu Sanjith Bravo Dastan 2013-10-28 03:25:57

Le format est %lu.

Veuillez vérifier les différents autres types de données et leur utilisation dans printf ici

8
répondu Praveen S 2015-08-02 17:37:15

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.

8
répondu Kumar Alok 2016-04-09 18:33:51