Hi, ich printe mit sprintf etwas in einen string. nun möchte ich einen uint32_t als dezimalzahl in den string printen. der Formatparameter %d mit der auffüllung auf 8 Stellen %08d geht scheinbar nur bis signed 16 bit. wie kann ich das umschiffen? Gruß, Thorsten
Gast
#1650202
Hallo shon mit i versucht oder u (wenn es nicht signed sein muss %8u)? http://www.cplusplus.com/reference/clibrary/cstdio/sprintf/
Thorsten S. schrieb: > Hi, > > ich printe mit sprintf etwas in einen string. nun möchte ich einen > uint32_t als dezimalzahl in den string printen. der Formatparameter %d > mit der auffüllung auf 8 Stellen %08d geht scheinbar nur bis signed 16 > bit. > > wie kann ich das umschiffen? Du kannst diese und andere Fragen zuverlässig umschiffen, indem du dir ein C-Buch kaufst. Da stehen diese Dinge und noch viele andere zuverlässig drinnen. %d ist für int %ld ist für long int http://www.mikrocontroller.net/articles/FAQ#Formatierungen_mit_printf
i geht nicht... u hábe ich noch nicht getestet... avr-libc-user-manual.pdf hier bin ich auch nicht´wirklich schlau geworden, sprintf ist enthalten, aber nicht die formatierungsparameter...
Thorsten S. schrieb: > ich printe mit sprintf etwas in einen string. nun möchte ich einen > uint32_t als dezimalzahl in den string printen. der Formatparameter %d > mit der auffüllung auf 8 Stellen %08d geht scheinbar nur bis signed 16 > bit. %d ist für Integer (bei AVRs 16 bit). %ld ist für long Integer (bei AVRs 32 bit). Warum verwendest Du das speicherintensive sprintf statt das sparsamere ltoa()? Gruß, Frank
....stimmt, an itoa habe ich nicht gedacht... ich will immer 8 stellen haben, wie machst du das am schnellstn mit itoa? gruß, thorsten
Gast
#1650246
sollte sich sogar mit nem 5 zeiler lösen lassen.
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
Thorsten S. schrieb: > ....stimmt, an itoa habe ich nicht gedacht... > > ich will immer 8 stellen haben, wie machst du das am schnellstn mit > itoa? gar nicht. Wie der Name schon sagt, ist itoa für int. Für long gibt es ltoa. Du brauchst wirklich Literatur. Das ist kein Scherz!
ltoa habe ich schon ergoogelt... danke für die tips, ich denke ich komme rum... Gru0, Thorsten
Thorsten S. schrieb:
> danke für die tips, ich denke ich komme rum...
Um Literatur?
Mit Sicherheit nicht!
Ohne wirst du dich ewig mit Halbwissen durch die Programmierung
schleppen.
Hallo Karl Heinz, dann lass mich das eben erläutern, informationen gibt es ja nun gerade zu dem Thema eine ganze Menge: http://en.wikipedia.org/wiki/Printf doch wo finde ich Informationen zu dem sprintf das hier auf den AVRs zum Tragen kommt. %ld ist nicht standardmäßig mit erwähnt. Ich habe folgende Bücher hier: ISBN 3-8266-0410-5 c-buch ISBN 3-446-19233-6 cpp buch Sicher würde ich bei so einer Frage erstmal in einem c buch gucken, dennoch steht auch hier %ld nicht mit drin. Wenn du einen brauchbaren tip für literatur in verbindung mit den libs auv einem AVR hast, dann her damit. Gruß, Thorsten
Thorsten S. schrieb: > doch wo finde ich Informationen zu dem sprintf das hier auf den AVRs zum > Tragen kommt. %ld ist nicht standardmäßig mit erwähnt. Sowohl unter dem von dir geposteten Link, wie auch in der AVR-Libc-Doku steht der Format-Modifier "l" mit drin. > Sicher würde ich bei so einer Frage erstmal in einem c buch gucken, > dennoch steht auch hier %ld nicht mit drin. Ich würde drauf wetten, dass es auch dort mit drin steht. Du musst nur aufmerksamer lesen.
..dann ist nicht die Literatur mein problem, sondern das Lesen.. danke
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.