Guten Abend, ich hänge bei meinem Projekt wieder am gleichen Problem: ich möchte aus numerischen Variablen einen Dateinamen in char umwandeln, um Dateien der SD-Card zu lesen. Ohne dies komme ich nicht weiter. Hier ein Beispiel :
Ich bitte sehr um Unterstüzung.
Rüdiger R.
vtdir // char
vtstg // float
vth1 // int
vth2 // int
vtspg // float
void dateiname() {
// {"&7+ 0,1ms H+0021m0030m 5,5V 000.0"}
// char dateiname[5] // [4+1]
strcpy (dateiname, "ABCD");
Serial.print(vtdir); // z.Bsp. "+/-"
Serial.print(vtstg); // z.Bsp. "ms00"
Serial.print(vth1); // z.Bsp. "100"
Serial.print(vth2); // z.Bsp. "200"
Serial.println(vtspg); // z.Bsp. "V44"}
Hallo
Wenn ich dich richtig verstanden habe geht es um Text und zahlen die einen Dateinamen ergeben sollten
Sprintf()
Du wirst mit Sicherheit keinen Dateinam,en aus einem Float ableiten wollen.
printf und seine Verwandten sind auf Arduino ohne float/double-Unterstützung gebaut.
Gruß Tommy
Falscher Titel. char ist etwas anderes als char[]
Ich möchte auch aus einer float-Variablen von zum Beispiel 1,2 (ms) den Dateinamen 'ms12' haben. Aus 4,6 (Volt) den Dateinamen 'V46' . Frage: Ist 'Sprintf()' eine Druckausgabe oder wird eine Variable erzeugt? Rüdiger R.
Greyhaired:
Ist 'Sprintf()' eine Druckausgabe oder wird eine Variable erzeugt?
Das ist eine Standard-Funktion die du nachschlagen kannst:
http://www.cplusplus.com/reference/cstdio/sprintf/
Geht wie gesagt auf AVRs normal nicht für float. Kann man aber auch durch editieren der config Dateien bekommen (auf Kosten der Flash Verbrauchs). Ansonsten gibt es dtostrf() für Gleitkommazahlen:
https://www.nongnu.org/avr-libc/user-manual/group__avr__stdlib.html#ga060c998e77fb5fc0d3168b3ce8771d42
Sprintf() füllt eine Zeichenkette
Es gibt gute c Tutorials im Netz die das beschreiben
Du hast gerade einen guten Link bekommen