PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Formatierungsproblem



hOPPELDROP
23.11.2010, 21:51
Moin, ich hatte hier ne kleine Aufgabe. Nun habe ich das Problem, das ich es genauso wie bei der Vorlage hinbekommen möchte.

Meins:http://home.arcor.de/alpenbog/wetter.jpg

Vorlage:http://home.arcor.de/alpenbog/wetter2.jpg

Jetzt habe ich das Problem, dass ich es nicht hinbekomme, das er Punkt unter Punkt macht. Und die precision der Zahlen bei glatten auch z.B. 5.00 steht und nicht nur 5.
Außerdem möchte ich, dass wenn es - ist, er eins vorrückt, damit die Punkte halt alle untereinander sind. Zudem, wenn eine Kommazahl Rauskomm, sollte er an 3,4 auch eien Null ranhängen so 3,40.

Irgendwie krieg ich das nicht hin, sorry wegen der unübersichtlichen Fragestellung, aber ich komm gerade garnicht klar :D

EBFE
23.11.2010, 22:22
1)passende, "monospace" Schriftart macht's möglich ;)
Nichtproportionale Schriftart – Wikipedia (http://de.wikipedia.org/wiki/Nichtproportionale_Schriftart)
(i.R Terminal, Lucida usw.)
Common fonts to all versions of Windows & Mac equivalents (Browser safe fonts) - Web design tips & tricks (http://www.ampsoft.net/webdesign-l/WindowsMacFonts.html)

2)Kommas und auffüllen erzwingen:
schau dir genauer die Formatmöglichkeiten an:
C/C++ - Formatierte Ausgabe (http://www.imb-jena.de/%7Egmueller/kurse/c_c++/c_printf.html)

Bsp:
printf("auffuellen links mit 0: %08d %08\n", 1,2000000);
printf("auffuellen links mit Leerzeichen: %8d: %-8s\n", 12, "hello");
printf("auffuellen links mit Leerzeichen: %8d: %-8s\n", 1245, "abc");
printf("auffuellen links und rechts: \n %8.2f \n %8.2f \n %8.2f\n", 1., 1.123, -4.5);Ausgabe
aauffuellen links mit 0: 00000001
auffuellen links mit Leerzeichen: 12: hello
auffuellen links mit Leerzeichen: 1245: abc
auffuellen rechts:
1.00
1.12
-4.50Vor allem durch das Auffüllen von links kannst du die gewünschte Ausrichtung erhalten (siehe letzte Zeile). Hierbei sagt die %8 erstmal, dass die Ausgabe mindestens 8 Zeichen haben soll (fehlende werden mit Leerzeichen aufgefüllt. D.h bei -4.5 wird "automatisch" wegen dem - weniger Leerzeichen verwendet und die Formatierung schaut wie gewünscht aus).
".2" sagt dann, dass hier maximal 2 Nachkommastellen erwünscht sind.
Die 2-te und 3-te Zeile demonstrienen sowohl das Auffüllen mit Leerzeichen von links, wie die Rechtsausrichtung der Strings.

Btw: mit sprintf kannst du die Formatierung statt in die Konsole in einen String "ausgeben".
Allerdings sollte man dann sowas wie snprintf nutzen (damit man keine Bufferoverflows einbaut ;) ).
Damit erhälst du praktisch fertige Strings, die du nur noch in der GUI ausgeben musst.