Forum: Mikrocontroller und Digitale Elektronik Probleme beim Konvertieren von String to const Char *


von Baeri B. (baeri)


Lesenswert?

Hallo,

ich arbeite mit der Arduino IDE auf einem ESP8266, eine Lib braucht von 
mir einen const Char *

ich versuche den Text aus einem EEPROM zu Konvertieren

wenn ich die Ausgabe mach

Serial.println( eeVal ); //wert_im_ee (das ganze ohne Zeichen davor oder 
dahinter)

da ich mit dem String nicht viel anfangen kann muss ich das in einen 
const Char Konvertieren...

Serial.println( to_Cchr( eeVal ) );

die Methode welche Konvertiert sieht so aus:
1
char* to_Cchr( String str ) {
2
    char __str[sizeof(str)-1];
3
    str.toCharArray(__str, sizeof(__str));
4
    return __str;
5
}

das Ergebnis (etwa so):
>wert_im_ee⸮⸮⸮?⸮b @X⸮⸮?t⸮⸮?⸮⸮⸮?% @⸮⸮?

was mach ich Falsch...
> auch wenn der Wert nicht aus dem EEPROM kommt sondern direkt aus einer String 
variable bekomme ich diese "Fehler"...

vielen Dank für jeden Tipp

von Peter II (Gast)


Lesenswert?

Baeri B. schrieb:
> was mach ich Falsch...

ist die Methode von dir?

Sie kann nicht funktionieren, weil sie ein lokales objekt zurückliefert.

Ich kenne auch den String-Datentype von Arduino nicht. Aber 
normalerweise hat eine String klasse auch eine Methode c_str();
1
Serial.println( eeVal.c_str() );

Aber ein String ausgehen sollte doch Standard bei Arduino sein, ich 
würde sogar erwarten das println damit umgehen kann.

von Dieter F. (Gast)


Lesenswert?


von baer (Gast)


Lesenswert?

@Peter II

perfekt vielen Dank...
ja, da hab ich was zusammengeschustert ^^

=> aber, mir geht es ja auch nicht um ein Print oder eine ausgabe in der 
Konsole, mit dem const char ist natürlich eine weiterverarbeitung 
gedacht...
in diesem Fall möchte ich eine WLAN-Verbindung zum Router aufbauen :)

now it works :)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.