avrgcc printf "width" Option ?

Gast #938557
Moin!

ich versuche gerade einen signed long so auszugeben:
1
sprintf(temp, "%010ld", value);

Es wird aber weder mit Nullen noch mit Leerzeichen aufgefüllt, sondern 
"ganz normal" gewandelt (z.b. 23 -> "23" anstatt "0000000023"). 
Vermutlich ist das in der printf Funktion im AVRGCC nicht enthalten, 
aber wie könnte ich soetwas am einfachsten nachrüsten ?
Gast #938598
Bei mir gehts!

OK, mal ernsthaft:
WinAVR20071221 mit AVR-Studio 4.14 und dessen Makefile + Atmega8 zeigt, 
dass folgendes im Simulator funktioniert (ich habe nicht weiter 
getestet, weil ich dein Problem scheinbar nicht nachstellen kann).
1
char temp[20];
2
sprintf(temp, "%010ld", 23L);
3
// temp enthaelt dann
4
// {'0', '0', '0', '0', '0', '0', '0', '0', '2', '3', 0}
Verrat' mehr details!

hth, Jörg
Gast #938636
Ok, ich habe die hier, vor einigen Tagen erst heruntergeladen und 
installiert:

avr-gcc (WinAVR 20080610) 4.3.0

In die libc Doku hatte ich schon geschaut, aber leider falsch 
verstanden. Ich dachte es gibt nur MIN und FLT, aber die dazwischen ist 
die Richtige, Danke!

Dann für alle die das gleiche Problem haben und auf diesen Beitrag 
stoßen, hier ist der entsprechende Teil im makefile:
1
#---------------- Library Options ----------------
2
# Minimalistic printf version
3
PRINTF_LIB_MIN = -Wl,-u,vfprintf -lprintf_min
4

5
# Floating point printf version (requires MATH_LIB = -lm below)
6
PRINTF_LIB_FLOAT = -Wl,-u,vfprintf -lprintf_flt
7

8
# If this is left blank, then it will use the Standard printf version.
9
PRINTF_LIB = 
10
#PRINTF_LIB = $(PRINTF_LIB_MIN)
11
#PRINTF_LIB = $(PRINTF_LIB_FLOAT)

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 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.