Hallo zusammen, ich stehe gerade mit dem Printf-Format-String unter C wieder auf dem Schlauch. Ich will drei führende Nullen vor dem Komma und zwei nachfolgende Stellen nach dem Komma - als dass immer fünf Stellen sichtbar sind. Das Vorzeichen soll zusätzlich vor der ersten Null erscheinen. Ob beim nicht-Vorzeichen ein Leerzeichen oder nichts entsteht, ist mir egal. Bei printf(" %06.2f", -1.f); klaut das Minuszeichen die erste Null. Bei printf(" %-06.2f", -1.f); werden die führenden Nullen ignoriert. Gibt es da einen Trick, oder muss ich mir meinen String aus Ziffern+Vorzeichen selbst zusammenbauen?
Nimm doch "%07.2f" als Formatstring und mach ein sprintf in einen String. Dann prüfst du das erste Zeichen vom String auf '0' und ersetzt es in diesem Falle durch ein Leerzeichen.
Walter T. schrieb: > Das Vorzeichen soll zusätzlich vor der ersten Null erscheinen. Ob beim > nicht-Vorzeichen ein Leerzeichen oder nichts entsteht, ist mir egal. Darf für positive Zahlen auch ein '+' vorangestellt werden? Dann wäre "%+07.2f" das geeignete Format. Edit: "% 07.2f" scheint genau das zu tun, was du erwartest. Muss es aber erst ausprobieren. Edit2: Ja, "% 07.2f" tut und ist ISO-konform.
:
Bearbeitet durch Moderator
Yalu X. schrieb: > Darf für positive Zahlen auch ein '+' vorangestellt werden? Nein, das Minus-Zeichen ist ja so wichtig, dass es aus genau diesem Grund nicht optisch untergehen darf. Yalu X. schrieb: > Edit2: Ja, "% 07.2f" tut und ist ISO-konform. Super, vielen Dank! Das sieht jetzt deutlich schöner aus als mit dem Workaround aus getrenntem Vorzeichen + Wert.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.