445 Stimmen

Wie druckt man "unsigned long" in C?

Ich kann nie verstehen, wie man druckt unsigned long Datentyp in C.

Angenommen, unsigned_foo ist eine unsigned long , dann versuche ich es:

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

Und alle von ihnen drucken irgendeine Art von -123123123 Nummer anstelle von unsigned long die ich habe.

649voto

Thanatos Punkte 40150

%lu ist das richtige Format für unsigned long . Klingt, als ob hier andere Probleme im Spiel sind, wie z.B. eine Speicherbeschädigung oder eine nicht initialisierte Variable. Vielleicht zeigen Sie uns ein größeres Bild?

54voto

Linkon Punkte 948

Para int %d

Para langes Int %ld

Para lang lang int %lld

Para unsigned long long int %llu

41voto

NealCaffery Punkte 492
  • %lu para unsigned long
  • %llu para unsigned long long

25voto

Von all den Kombinationen, die Sie ausprobiert haben, %ld y %lu sind die einzigen, die überhaupt gültige printf-Format-Spezifikationen sind. %lu (long unsigned decimal), %lx o %lX (langes Hexfeld mit Klein- oder Großbuchstaben), und %lo (long octal) sind die einzigen gültigen Formatspezifikationen für eine Variable vom Typ unsigned long (natürlich können Sie Feldbreite, Genauigkeit usw. zwischen den % und die l ).

13voto

Kumar Alok Punkte 2372

Der korrekte Bezeichner für unsigned long ist %lu .

Wenn Sie nicht den genauen Wert erhalten, den Sie erwarten, kann es Probleme in Ihrem Code geben.

Bitte kopieren Sie Ihren Code hierher. Dann kann Ihnen vielleicht jemand besser sagen, wo das Problem liegt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X