Autor |
C - Format-Platzhalter |
|
JamesNguyen
Aktiv  Dabei seit: 08.11.2020 Mitteilungen: 187
 |
Hallo,
kurze Frage.
Ich versuche ein Zahl linksbündig und mit führender 0 auszugeben.
führende 0 klappt, aber sobald ich linksbündig hinzufüge macht er die 0 weg.
printf ("%02u" , i * j); geht
printf ("%-02u" , i * j); linksbündig aber ohne führende 0
geht das überhaupt?
James
|
Notiz Profil
Quote
Link |
JamesNguyen
Aktiv  Dabei seit: 08.11.2020 Mitteilungen: 187
 |     Beitrag No.1, vom Themenstarter, eingetragen 2021-02-24
|
ehrlich gesagt kann ich mir darunter auch nicht wirlich etwas vorstellen
wie soll es führende null bei linksbündig überhaupt geben
|
Notiz Profil
Quote
Link |
StrgAltEntf
Senior  Dabei seit: 19.01.2013 Mitteilungen: 6774
Herkunft: Milchstraße
 |     Beitrag No.2, eingetragen 2021-02-24
|
Was hältst du von
printf ("0%d" , i * j);
?
Obwohl ich den Grund, warum man so etwas tun möchte, nicht verstehe.
|
Notiz Profil
Quote
Link |
JamesNguyen
Aktiv  Dabei seit: 08.11.2020 Mitteilungen: 187
 |     Beitrag No.3, vom Themenstarter, eingetragen 2021-02-24
|
Das ist ein witzige vlt auch die richtige Idee
Das kommt aus der Aufgabenstellung:
In einer Zelle geben Sie das Produkt aus Zeilen und Spaltenzahl aus. Und zwar zweistellig
hexadezimal mit führender 0 linksbündig und darunter vierstellig oktal mit Vorzeichen rechts
ausgerichtet. Sollte das nicht ausreichen, nehmen Sie eine gleichmäßige Breitenkorrektur vor,
so dass in allen Zellen gleich breite hexadezimale und gleich breite oktale Zahlen stehen.
|
Notiz Profil
Quote
Link |
JamesNguyen
Aktiv  Dabei seit: 08.11.2020 Mitteilungen: 187
 |     Beitrag No.4, vom Themenstarter, eingetragen 2021-02-24
|
ja also ich mach das jetzt mit
0%d
da steht ja führende 0 also vlt eine.
Vielleicht ist das ja das man die hexadez von der oktal unterscheiden kann
|
Notiz Profil
Quote
Link |
zippy
Senior  Dabei seit: 24.10.2018 Mitteilungen: 1995
 |     Beitrag No.5, eingetragen 2021-02-24
|
2021-02-24 18:49 - JamesNguyen in Beitrag No. 4 schreibt:
ja also ich mach das jetzt mit
0%d
da steht ja führende 0 also vlt eine.
Was da steht, ist, dass du die Zahlen mit führenden Nullen zweistellig ausgeben sollst, also z.B. "5" als "05". Aber du sollst nicht eine Null vor alles hängen.
Außerdem ignoriert dein Format völlig, das es um eine hexadezimale Ausgabe geht.
Wenn du in einem Feld der Breite 5 eine Zahl hexadezimal 2-stellig mit führender Null linksbündig ausgeben wilst, ist das Format %-5.2x . Oder %-5.2X , wenn du lieber Großbuchstaben magst.
|
Notiz Profil
Quote
Link |
JamesNguyen
Aktiv  Dabei seit: 08.11.2020 Mitteilungen: 187
 |     Beitrag No.6, vom Themenstarter, eingetragen 2021-02-24
|
ah ok
bei gleitkommazahlen bedeutet ja .2f kommastellen nach dem komma
bei ganzen gibt es also auch .2 und stellt hier die stellenzahlen an.
zweistellig hat hier also nichts mit der breit zu tun
Danke!
|
Notiz Profil
Quote
Link |
JamesNguyen
Aktiv  Dabei seit: 08.11.2020 Mitteilungen: 187
 |     Beitrag No.7, vom Themenstarter, eingetragen 2021-02-24
|
Wie ist dann vierstellig oktal gemeint?
weil wenn ich "%.4o" mache macht er auch führende Nullen
|
Notiz Profil
Quote
Link |
zippy
Senior  Dabei seit: 24.10.2018 Mitteilungen: 1995
 |     Beitrag No.8, eingetragen 2021-02-24
|
Schau doch mal in irgendeine Doku. Es gibt sogar einen Wikipedia-Artikel zu diesem Thema.
|
Notiz Profil
Quote
Link |
JamesNguyen
Aktiv  Dabei seit: 08.11.2020 Mitteilungen: 187
 |     Beitrag No.9, vom Themenstarter, eingetragen 2021-02-24
|
ok mache ich, ich wollte dann fragen
ob ich nun
"In einer Zelle geben Sie das Produkt aus Zeilen und Spaltenzahl aus. Und zwar zweistellig hexadezimal mit führender 0 linksbündig und darunter vierstellig oktal mit Vorzeichen rechts ausgerichtet."
richtig gemacht habe
printf ( "%-5.2X" , i * j ) ;
und
printf ( "+%.4o" , i * j ) ;
bei oktal
kommt dann halt bspw. +0017 raus, also führende Nullen
Ich wüsste aber nicht was es heißen würde wenn man
vierstellig oktal mit Vorzeichen rechts ausgerichtet
ohne führende Nullen machen müsste
|
Notiz Profil
Quote
Link |