Frage

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

Vermuten unsigned_foo ist ein unsigned long, dann versuche ich:

  • 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 drucken irgendwie -123123123 Zahl statt unsigned long das ich habe.

War es hilfreich?

Lösung

%lu ist das richtige Format für unsigned long.Klingt, als wären hier noch andere Probleme im Spiel, etwa eine Speicherbeschädigung oder eine nicht initialisierte Variable.Zeigen Sie uns vielleicht ein größeres Bild?

Andere Tipps

  • %lu für unsigniert lang
  • %llu für unsigniert lang lang

Für int %d

Für lange int %ld

Für lang lang int %lld

Für unsigned long long int %llu

Von allen Kombinationen, die Sie ausprobiert haben, %ld Und %lu sind die einzigen, die überhaupt gültige printf-Formatspezifizierer sind. %lu (lange Dezimalzahl ohne Vorzeichen), %lx oder %lX (langes Hex mit Klein- oder Großbuchstaben) und %lo (langes Oktal) sind die einzigen gültigen Formatbezeichner für eine Variable vom Typ „unsigned long“ (natürlich können Sie dazwischen Modifikatoren für Feldbreite, Genauigkeit usw. hinzufügen % und das l).

int main()
{
    unsigned long long d;
    scanf("%llu",&d);
    printf("%llu",d);
    getch();
}

Das wird hilfreich sein...

Das Format ist %lu.

Bitte informieren Sie sich über die verschiedenen anderen Datentypen und deren Verwendung in printf Hier

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

Wenn Sie nicht genau den erwarteten Wert erhalten, liegen möglicherweise Probleme in Ihrem Code vor.

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

Ich hatte das gleiche Problem.Versuchen Sie es mit „%ul“, bei mir funktioniert es.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top