sprintf() Formatierung als Parameter übergeben - Problem

Gast #1260865
Lesenswert?
• ▲
▼
Hallo zusammen,

ich möchte auf meinem atmega 32 einen mit variabler Formatierung einen 
String erzeugen.
Hierzu möchte ich die Funktion sprintf() benutzen:
1
sprintf(stringname, "%*.*f", laenge, nachkomma, variable);
Quelle z.B.: http://www.cplusplus.com/reference/clibrary/cstdio/sprintf/

Die Fließkommazahlen-Unterstützung für sprintf() ist aktiviert, 
allerdings klappt das mit den Sternchen für die Formatierung überhaupt 
nicht.
Scheinbar wird dies nicht unterstützt? Ich habe hierzu leider keine 
Infos gefunden.

Wird dieses "Feature" generell nicht unterstützt, oder muss ich noch 
irgendwas einbinden?

compiler: gcc 4.3.2

Danke & Grüße
Pierre
#1260884
Lesenswert?
• ▲
▼
Pierre schrieb:

> Wird dieses "Feature" generell nicht unterstützt, oder muss ich noch
> irgendwas einbinden?

Dazu kann ich wenig sagen, kenn da die Implementierung von sprintf 
zuwenig. Du solltest allerdings daran denken, dass aufgrund 
Platzbeschränkungen in einem µC höchst wahrscheinlich nicht alles was in 
so einem Formatstring möglich ist, unterstützt werden wird. Vor allem 
dann nicht, wenn es relativ einfach ist, sich selbst Abhilfe zu 
schaffen.
1
....
2

3
   char fmtString[15];
4

5
   sprintf( fmtString, "%%%d.%df", laenge, nachkomma );
6
   sprintf( stringname, fmtString, variable );
Gast #1260961
Lesenswert?
• ▲
▼
Hallo zusammen,

also ich habe mich jetzt mal durch die Tiefen der Dokumentation gewühlt. 
Die variablen Formatierungseigenschaften werden nicht unterstützt.

Deshalb mache ich es jetzt gemäß dem Vorschlag von Karl Heinz, was den 
gleichen Zweck erfüllt. Vielen Dank!

Grüße
Pierre

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren