# OT Wolle erklärt formatierte Ausgabe

**URL:** <https://forum.arduino.cc/t/ot-wolle-erklart-formatierte-ausgabe/1297213>\
**Category:** Deutsch\
**Created:** [August 31, 2024, 8:10pm UTC](https://forum.arduino.cc/t/ot-wolle-erklart-formatierte-ausgabe/1297213 "2024-08-31T20:10:15Z")\
**Posts on this page:** 15\
**Page:** 1

<div class="post-metadata">

**Author:** ![fony](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/fony/32/936882_2.png) [@fony](https://forum.arduino.cc/u/fony)\
**Post date:** [August 31, 2024, 8:10pm UTC](https://forum.arduino.cc/t/ot-wolle-erklart-formatierte-ausgabe/1297213/1 "2024-08-31T20:10:15Z")

</div>

mit sprintf(), snprintf() und dtostrf() so wie immer gut erklärt für ein wenig eingearbeitete Anfänger. Ist nicht so einfach wie blinkende LED, trotzdem nicht so "trocken" wie andere Seiten, wie immer ist das nur meine Meinung 😉

> **[Formatierte Ausgabe • Wolles Elektronikkiste](https://wolles-elektronikkiste.de/formatierte-ausgabe?utm_source=mailpoet&utm_medium=email&utm_source_platform=mailpoet&utm_campaign=neues-aus-der-kiste-newsletterposttitle-4)**
>
> Eine formatierte Ausgabe mit den Funktionen sprintf(), snprintf() und dtostrf() zu erzeugen, ist einfach. Es gibt jedoch Stolperfallen.

Gruß Bernhard

---

<div class="post-metadata">

**Author:** ![Tommy56](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/tommy56/32/232943_2.png) [@Tommy56](https://forum.arduino.cc/u/Tommy56)\
**Post date:** [August 31, 2024, 8:21pm UTC](https://forum.arduino.cc/t/ot-wolle-erklart-formatierte-ausgabe/1297213/2 "2024-08-31T20:21:03Z")

</div>

Informativer Beitrag, besonders für Anfänger. Danke für den Link.  
Evtl. fehlt die Info über Serial.printf, dass auf ESP verfügbar ist (oder ich habe es überlesen).

Den Link sollten sich viele abspeichern.

Gruß Tommy

---

<div class="post-metadata">

**Author:** ![fony](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/fony/32/936882_2.png) [@fony](https://forum.arduino.cc/u/fony)\
**Post date:** [August 31, 2024, 8:30pm UTC](https://forum.arduino.cc/t/ot-wolle-erklart-formatierte-ausgabe/1297213/3 "2024-08-31T20:30:03Z")

</div>

> [@Tommy56](#):
>
> Evtl. fehlt die Info über Serial.printf, dass auf ESP verfügbar ist (oder ich habe es überlesen).

Habe mir das genauer angeschaut, hast mich neugierig gemacht.  
Doch, es wird nur kurz erwähnt.

" _In der Tat könnt ihr auf manchen Mikrocontrollerboards (z.B. ESP32) dazu die Funktion `Serial.printf()` nutzen, allerdings, z. B., nicht auf den klassischen AVR-basierten Arduinos._"

Gruß Bernhard

---

<div class="post-metadata">

**Author:** ![Tommy56](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/tommy56/32/232943_2.png) [@Tommy56](https://forum.arduino.cc/u/Tommy56)\
**Post date:** [August 31, 2024, 8:32pm UTC](https://forum.arduino.cc/t/ot-wolle-erklart-formatierte-ausgabe/1297213/4 "2024-08-31T20:32:15Z")

</div>

Danke, dann habe ich das übersehen.

Gruß Tommy

---

<div class="post-metadata">

**Author:** ![combie](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/combie/32/217369_2.png) [@combie](https://forum.arduino.cc/u/combie)\
**Post date:** [August 31, 2024, 10:00pm UTC](https://forum.arduino.cc/t/ot-wolle-erklart-formatierte-ausgabe/1297213/5 "2024-08-31T22:00:19Z")

</div>

Hmmm....

Bei Wolle steht leider nicht, wie man printf mit Arduinos nutzen kann.

Also hier mal die nötige Ergänzung:

```arduino
int writeChar(char c, FILE *)
{
  return !Serial.write(c);
}

int readChar(FILE *)
{
   int c;
   while(-1 == (c=Serial.read()));
   return c;
}

FILE stdiostream;

void setup() 
{
  fdev_setup_stream(&stdiostream, writeChar, readChar, _FDEV_SETUP_RW);
  stdin = stdout = stderr = &stdiostream;

  
  Serial.begin(9600);

  signed value = 72;
  printf("testHex 0x%02X\r\n",value);
  printf("testDezimal %02d\r\n",value);
}

void loop()
{
}

```

---

<div class="post-metadata">

**Author:** ![Plumps](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/plumps/32/1018546_2.png) [@Plumps](https://forum.arduino.cc/u/Plumps)\
**Post date:** [September 1, 2024, 5:44am UTC](https://forum.arduino.cc/t/ot-wolle-erklart-formatierte-ausgabe/1297213/6 "2024-09-01T05:44:01Z")

</div>

Wolle hat sehr viele, leicht verständliche, Themen. Mir hat er schon oft geholfen, Dinge besser zu verstehen.

---

<div class="post-metadata">

**Author:** ![combie](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/combie/32/217369_2.png) [@combie](https://forum.arduino.cc/u/combie)\
**Post date:** [September 1, 2024, 6:17am UTC](https://forum.arduino.cc/t/ot-wolle-erklart-formatierte-ausgabe/1297213/7 "2024-09-01T06:17:21Z")

</div>

> [@Plumps](#):
>
> Wolle hat sehr viele, leicht verständliche, Themen.

Ja!  
Manches ist allerdings zu vereinfacht.  
Auch bei seinen Texten lohnt es sich, ab und an, weitere Doku zu lesen, bzw. das Hirn einzuschalten.

Beispiel:

> [@](#):
>
> #### printf()
> 
> Vielleicht fragt ihr euch, ob man sich den Umweg über das Character Array `buf` nicht sparen kann. In der Tat könnt ihr auf manchen Mikrocontrollerboards (z.B. ESP32) dazu die Funktion `Serial.printf()` nutzen, allerdings, z. B., nicht auf den klassischen AVR-basierten Arduinos.
> 
> `int Serial.printf(const char * format, ....);`
> 
> Falls das Board eurer Wahl `printf()` unterstützt, dann könnt ihr alles, was ich zu `sprintf()` schreibe, einfach übertragen. Man sollte sich allerdings überlegen, ob man seine Sketche wirklich Board-spezifisch schreiben möchte.

Insbesondere:

> Falls das Board eurer Wahl `printf()` unterstützt

Diese "Falschaussage"/Ungenauigkeit, habe ich mit meinem Beitrag widerlegt.  
Nicht mehr und auch nicht weniger.  
Denn diese Unterstützung kann man selber herstellen, wenn man Libc Doku gelesen hat.

---

<div class="post-metadata">

**Author:** ![SpaghettiCode](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/spaghetticode/32/1019852_2.png) [@SpaghettiCode](https://forum.arduino.cc/u/SpaghettiCode)\
**Post date:** [September 2, 2024, 8:36am UTC](https://forum.arduino.cc/t/ot-wolle-erklart-formatierte-ausgabe/1297213/8 "2024-09-02T08:36:01Z")

</div>

Was nützt einem ein Wissender, der nicht fähig ist selbiges zu vermitteln, und Antworten auf Fragen wie das Orakel von Delphi klingen?  
Dann lieber jemand der fähig ist, Wissen zu vermitteln, und dafür auf vereinfachende Erklärungen zurückgreift.  
In der Wissenschaftskommunikation wird auch vereinfacht. Hat man selbst entsprechendes Wissen angehäuft, greift man auch auf entsprechende Dokumentation zurück.

---

<div class="post-metadata">

**Author:** ![combie](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/combie/32/217369_2.png) [@combie](https://forum.arduino.cc/u/combie)\
**Post date:** [September 2, 2024, 9:02am UTC](https://forum.arduino.cc/t/ot-wolle-erklart-formatierte-ausgabe/1297213/9 "2024-09-02T09:02:50Z")

</div>

> [@SpaghettiCode](#):
>
> In der Wissenschaftskommunikation

Dort wird extensiv mit Quellenangaben gearbeitet.  
Unbelegte Behauptungen werden zerrissen.

> [@SpaghettiCode](#):
>
> wird auch vereinfacht.

Dort wird extensiv mit Quellenangaben gearbeitet.  
Bei Wolle fehlt mir hier der Hinweis auf die Libc, wo nämlich steht, wie man printf zum laufen bekommt, und wie man printf die float Ausgabe auf AVR bei bringt.

Wenn man Wolles Artikel liest, scheint er den Eindruck vermitteln zu wollen, dass printf nicht von den AVR Arduinos unterstürzt wird.

> Falls das Board eurer Wahl `printf()` unterstützt

Wird es aber.

---

<div class="post-metadata">

**Author:** ![Doc\_Arduino](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/doc_arduino/32/215810_2.png) [@Doc\_Arduino](https://forum.arduino.cc/u/Doc_Arduino)\
**Post date:** [September 2, 2024, 9:09am UTC](https://forum.arduino.cc/t/ot-wolle-erklart-formatierte-ausgabe/1297213/10 "2024-09-02T09:09:41Z")

</div>

Hallo,

ich bin mir sicher Wolle meint das anders.  
Eben das printf nicht standardmäßig einfach so vorhanden bzw. nutzbar ist.

---

<div class="post-metadata">

**Author:** ![combie](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/combie/32/217369_2.png) [@combie](https://forum.arduino.cc/u/combie)\
**Post date:** [September 2, 2024, 9:24am UTC](https://forum.arduino.cc/t/ot-wolle-erklart-formatierte-ausgabe/1297213/11 "2024-09-02T09:24:35Z")

</div>

Es ist Standardmäßig vorhanden.

Aber nicht nutzbar, weil kein BS vorhanden, bzw. Startupcode es nicht etabliert.

Wolles Artikel verführt eher dazu printf auf Arduinos zu ignorieren, als "Inspiration" zu liefern, sich da kundig zu machen.  
Das finde ich schade!

Natürlich kritisiere ich nicht nur, sondern liefere auch die Abhilfe.

---

<div class="post-metadata">

**Author:** ![agmue](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/agmue/32/750067_2.png) [@agmue](https://forum.arduino.cc/u/agmue)\
**Post date:** [September 2, 2024, 10:22am UTC](https://forum.arduino.cc/t/ot-wolle-erklart-formatierte-ausgabe/1297213/12 "2024-09-02T10:22:52Z")

</div>

> [@combie](#):
>
> Natürlich kritisiere ich nicht nur, sondern liefere auch die Abhilfe.

Danke dafür, mein Mega2560 akzeptiert es, ich freue mich 😃

```arduino
testHex 0x48
testDezimal 72

```

---

<div class="post-metadata">

**Author:** ![agmue](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/agmue/32/750067_2.png) [@agmue](https://forum.arduino.cc/u/agmue)\
**Post date:** [September 3, 2024, 6:41am UTC](https://forum.arduino.cc/t/ot-wolle-erklart-formatierte-ausgabe/1297213/13 "2024-09-03T06:41:55Z")

</div>

Ich habe Wolle auf dieses Thema aufmerksam gemacht. Möglicherweise wird er seinen Artikel daraufhin präzisieren. Dann hätten noch mehr Leser Nutzen davon.

---

<div class="post-metadata">

**Author:** ![combie](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/combie/32/217369_2.png) [@combie](https://forum.arduino.cc/u/combie)\
**Post date:** [September 16, 2024, 2:40pm UTC](https://forum.arduino.cc/t/ot-wolle-erklart-formatierte-ausgabe/1297213/14 "2024-09-16T14:40:11Z")

</div>

Das hat ja mal geklappt!

Meinen Dank an dich und natürlich auch an Wolle.

---

<div class="post-metadata">

**Author:** ![system](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/system/32/1140315_2.png) [@system](https://forum.arduino.cc/u/system)\
**Post date:** [March 15, 2025, 2:40pm UTC](https://forum.arduino.cc/t/ot-wolle-erklart-formatierte-ausgabe/1297213/15 "2025-03-15T14:40:14Z")

</div>

Closed on March 15, 2025, 2:40pm UTC

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.
