sprintf() Formatierung als Parameter übergeben - Problem

Gast #1260865
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
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
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

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.