itoa() / dtostrf() oder sprintf() zur Integer- / Floatwandlung

Andreas schrieb:

> Sollten man da besser die itoa() bzw. dtostrf() oder die sprintf()
> Funktion benutzen?

Die Frage kann man so nicht beantworten.
Es hängt auch von den Rahmenbedingungen ab, was "besser" ist.

sprintf bietet die meisten Möglichkeiten, kostet dafür aber auch den 
meisten Programmcode und ist die langsamste Möglichkeit. Wenn die 
Nachteile sich in einer Applikation nicht auswirken und man die Vorteile 
nutzen kann, spricht nichts dagegen diese Funktion auch zu verwenden.

Was ist besser um von A nach B zu kommen
Rad, Bahn, Bus, PKW, LKW

Kann man nicht beantworten. Wenn ich von A nach B will, weil ich einen 
Wohnungsumzug mache, wird ein Rad eher suboptimal sein. Wenn ich spät 
drann bin und erst auf den Zug warten muss, wird Bahn und Bus eventuell 
suoptimal sein, ein Rad aber nicht zu schlagen sein, wenn A nur 100 
Meter von B entfernt ist, etc.

Kurz und gut: Kenne deinen Werkzeugkasten und nimm das Werkzeug, welches 
dem Einsatzzweck angemessen ist.
Gast
Danke Karl Heinz

ich fange leider erst gerade mit dem Radfahren an! ;)

Wenn ich ein WORD wandeln möchte muss ich sprintf() nehmen?
Bei iota() bekomme ich auf jedenfall -1.

Gruß, Andreas
Gast
>> Sollten man da besser die itoa() bzw. dtostrf() oder die sprintf()
>> Funktion benutzen?

Am besten nichts davon. Rechnen in "c" hats in sich und daher empfehle 
ich Dir mal ein paar kleine Rechnereien auszutesten. Am besten geht das 
auf dem PC oder du machst dir eine Ausgabe über USART aufs Terminal. 
Dann beginnst Du mit deinen Matheübungen und schaust mal mittels printf 
was dabei so herauskommt.

In 99.9% aller Fälle brauchst Du keine Lib Funktionen zur Ausgabe von 
ein paar Zahlen.
Bernd N schrieb:
Ich persönlich setze itoa und dtostrf gerne ein. Sie sind deutlich 
platzsparender als sprintf und bieten trotzdem noch den Komfort, ohne 
eigene Routinen schnell was auszugeben.

> Am besten nichts davon. Rechnen in "c" hats in sich und daher empfehle
> ich Dir mal ein paar kleine Rechnereien auszutesten. Am besten geht das
> auf dem PC oder du machst dir eine Ausgabe über USART aufs Terminal.
Ob USART oder LCD ist doch egal. Vorher muß er aus der numerischen 
Variable einen String machen, denn sonst kann er mit einem Terminal nur 
sehr schlecht mitlesen.
Warum es rechnen in C in sich hat, möchte ich auch wissen. Wenn man sich 
im klaren ist, welchen Wertebereich die einzelnen Variablentypen haben, 
sehe ich wenig Gemeinheiten. Ok, casten (explizite Typumwandlung) muß 
man hin und wieder.

Servus
Michael
Gast
Er sagt ja das er Anfänger ist und gerade casten und Wertebereich sowie 
einzelnen Variablentypen zu kennen und zu verstehen ist nun mal das a 
und o.

>> Bei iota() bekomme ich auf jedenfall -1.

Das ist ein deutlicher Hinweis das er nicht in C rechnen kann.
Andreas schrieb:
> Danke! casten brachte bei der iota() mit der -1 Ausgabe Erfolg!

Das war höchst wahrscheinlich die falsche Lösungsmethode

itoa     wenn du einen int hast
utoa     wenn du einen unsigned int hast
ltoa     wenn du einen long hast
ultoa    wenn du einen unsigned long hast


Benutzte die richtige Funktion für den richtigen Zweck und hör auf die 
Dinge zurechtzucasten.

Antwort schreiben

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