Ich kann nie verstehen, wie man den Datentyp unsigned long
in C druckt.
Angenommen, 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 von ihnen drucken eine Art -123123123
Nummer anstelle von unsigned long
, die ich habe.
%lu
ist das richtige Format für unsigned long
. Klingt so, als gäbe es hier andere Probleme, wie z. B. Speicherbeschädigung oder eine nicht initialisierte Variable. Zeigen Sie uns vielleicht ein größeres Bild?
%lu
für nsigned long%llu
für lange ohne VorzeichenVon allen Kombinationen, die Sie ausprobiert haben, sind %ld
und %lu
die einzigen, die überhaupt gültige printf-Formatbezeichner sind. %lu
(lange Dezimalzahl ohne Vorzeichen), %lx
oder %lX
(langes Hexadezimal mit Klein- oder Großbuchstaben) und %lo
(langes Oktal) sind die einzigen gültigen Formatangaben für a Variable vom Typ unsigned long (natürlich können Sie zwischen %
und l
Modifikatoren für Feldbreite, Genauigkeit usw. einfügen).
Für int%d
Für long int%ld
Für long long int%lld
Für nsigned long long int%llu
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 den genauen Wert erhalten, den Sie erwarten, liegt möglicherweise ein Problem in Ihrem Code vor.
Bitte kopieren Sie Ihren Code hier. Dann kann dir vielleicht jemand besser sagen, wo das Problem liegt.