Wie drucke ich „unsigned long“ in C?
-
13-09-2020 - |
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.
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.