00 vor Zahl
-
Hallo, ich möchte eine hexadezimale Zahl mit 8 stellen darstellen.
Zurzeit mache ich das so:sprintf(buffer, TEXT("Hex: %X Int: %d"), hex, int);Jedoch wird hex halt immer z.b. mit FF41 dargestellt - also ohne 0.
Ich möchte es gerne so haben: 0000FF41.
Wäre super wenn es wer wüsste.
Danke
-
du bist hier im c++ forum
also benutz auch C++
stringstream ss; string str; ss << "Hex: " << width(8) << hex << "Int: " << width(16) << integ; getline(ss, str);
-
och, sprintf geht schon ok, würde ich meinen.
sprintf(buffer, TEXT("Hex: %08X Int: %d"), hex, int);
-
volkard das funktioniert leider nicht
-
OttoLive schrieb:
volkard das funktioniert leider nicht
mist. dann hab ich http://en.wikipedia.org/wiki/Printf falsch gelesen.
nach printf format placeholders
bei Flags
bei 0
das beispiel
printf("%02d", 3) results in "03".komisch.
vielleicht was anderes, was kaputt ist?
haste im buffer genug speicher frei?
wie kommts, daß deine zweite variable int heißt, das ist doch ein schlüsselwort.
kannste genaueres zum fehler sagen?
-
precision mit "." angeben. also
sprintf(buffer, TEXT("Hex: %.8X Int: %d"), hex, int);
edit: das mit int ist natürlich unsinn, sollte aber wohl bloß als beispiel dienen

-
hab noch ein beispiel im netz gefunden mit 8-stelliger hex-ausgabe.
http://stahlforce.com/dev/index.php?tool=csc02
-
danke es funktioniert jetzt!
Und noch eine andere Frage zu sprintf:
Für float gibt es ja %f, aber wie kann man double formatieren?
-
auch mit %f, ggf. %e für exponentialdarstellung, oder %g um das passende automatisch auswählen zu lassen (ich bin mir aber nicht sicher ob das glibc-erweiterungen sind oder ob das standardisiert ist)

-
sothis_ schrieb:
auch mit %f, ggf. %e für exponentialdarstellung, oder %g um das passende automatisch auswählen zu lassen (ich bin mir aber nicht sicher ob das glibc-erweiterungen sind oder ob das standardisiert ist)

Wenn die Floaten, die nicht explizit in dem Prototyp deklariert werden, Argumente von Typenfloaten an eine Funktion übergeben, die eine variable Anzahl von Argumenten akzeptiert, werden die Floaten, die nicht explizit in dem Prototyp deklariert werden, heraufstufen, um doppelt einzugeben.
quelle: http://support.microsoft.com/kb/71424
-
volkard schrieb:
sothis_ schrieb:
auch mit %f, ggf. %e für exponentialdarstellung, oder %g um das passende automatisch auswählen zu lassen (ich bin mir aber nicht sicher ob das glibc-erweiterungen sind oder ob das standardisiert ist)

Wenn die Floaten, die nicht explizit in dem Prototyp deklariert werden, Argumente von Typenfloaten an eine Funktion übergeben, die eine variable Anzahl von Argumenten akzeptiert, werden die Floaten, die nicht explizit in dem Prototyp deklariert werden, heraufstufen, um doppelt einzugeben.
quelle: http://support.microsoft.com/kb/71424lol