C-Formatstrings

Posted By: Olchi

C-Formatstrings - 04/06/11 10:47

Hallo
Ich habe ein Problem mit der Formatierung meiner Digits.
Ich habe auch schon danach gegoogelt und ausgedrukt...komme aber nicht mit klar.
Ich möchte per "digits" meine Zahl mit Tausenderpunkt, ohne Nachkommastellen, keine führende Nullen aber linksbündig anzeigen.
Die C-Formatstrings sind mir ein Rätzel!
Kann da jemand helfen? Bitte mit Beispiel
Gruß von Olchi
Posted By: Ayumi

Re: C-Formatstrings - 04/06/11 12:18

Ungetestet, das "-" für linksbündig, das "#" für die Kommastellen
(Hab keine Moeglichkeit, das jetzt zu testen, soll nur ein Anreiz sein.
Ich teste abends.
Code:
digits(10,10,"%-#5.0f",*,1,X);   // oder so (laut handbuch)


EDIT: falsche parameter, mom.

Schau mal hier:
http://msdn.microsoft.com/de-de/library/0c899ak8%28v=vs.80%29.aspx#Y2508

und hier:
http://www.cplusplus.com/reference/clibrary/cstdio/printf/

Normalerweise ist das prinzip gleich von C.



So, nochmal:
Das sollte richtig sein.
Code:
digits(10,10,"%2.0f",*,1,X);   // oder so (laut handbuch)



Die 2 gibt folgendes an:
Tausendertrennzeichen Punkt, Dezimaltrennzeichen Komma.
Posted By: Olchi

Re: C-Formatstrings - 04/07/11 07:20

moin Ayumi,
habe alles ausprobiert, klappt nicht!
wenn ich zb ein "n" (für Tausenderpunkt) eingebe, schmiert die Engine ab...
Hat noch jemand eine Idee mit Beispiel?

Gruß Olchi
Posted By: Ayumi

Re: C-Formatstrings - 04/07/11 07:28

Wie kommst du denn auf "n"?

Besser wäre, wenn du den Usern hier mal ein Beispiel vorlegst, wie du bisher
formatiert hast.
Posted By: Olchi

Re: C-Formatstrings - 04/07/11 08:43

Hallo,
habe nach c/c++ Formatstrings gegoogelt (wie auch im Handbuch vorgeschlagen), dort steht das "n" für Tausendertrennzeichen...

digits(15,70,"%1f",font_14,1,Kn);

habe aber auch andere Varianten probiert.
zum Test habe ich die var Kn mit 999999.999 gefüllt,
angezeigt wird mir: 999999.000000

Olchi
Posted By: Lukas

Re: C-Formatstrings - 04/07/11 12:21

Das digits interessiert sich nicht für den Namen deiner Variablen, also bringt es nichts das n an den Namen der Variablen zu hängen!
Versuchs mal so:
digits(15,70,"%1n",font_14,1,Kn);

Wenn das nicht richtig funktioniert, wirst du wohl str_printf und eine int benutzen müssen.
Posted By: Ayumi

Re: C-Formatstrings - 04/07/11 15:33

Nein, damit stürzt das game ab.

Und printf uterstützt keine tausender trennzeichen.

Entweder du packst dir das in einen string, oder programmierst dir
eine eigene Ausgabe.
Ersteres wäre weitaus komfortabler.
Posted By: Lukas

Re: C-Formatstrings - 04/08/11 16:10

So, ich hab das mit dem "n" mal nachgeprüft. Das erzeugt wie es aussieht nur in C# Tausendertrennzeichen! Laut cplusplus.com interpretiert printf das "n" so: "Nothing printed. The argument must be a pointer to a signed int, where the number of characters written so far is stored."

Ich hab es auch mal ausprobiert und kann das mit dem Absturz bestätigen.

Mach es wie Ayumi es sagt.
© 2024 lite-C Forums