INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Integer in Zeichenkette übernehmen
30.01.2020, 11:47
Beitrag #1
Integer in Zeichenkette übernehmen
Moin!

ich habe folgende Funktion um möglichst flexible Elemente zu schalten.

Code:
void SwitchSignal(int Index)
{
  char buf[20];
  if (Signal[Index].status  == 0){ // --> GO
    sprintf(buf, "***** Go %d *****", Index);
    bluetooth.println(buf);
    //bluetooth.println("***** Go " Index " *****");
    Signal[Index].status = 1;
    sprintf(buf, "led_go_0d% 1\n", Index);
    bluetooth.println(buf);
    //bluetooth.println("led_go_00 1\n");
    sprintf(buf, "led_stop_0d% 0\n", Index);
    bluetooth.println(buf);
    //bluetooth.println("led_stop_00 0\n");
    
  } else { // --> STOP
    sprintf(buf, "***** STOP %d *****", Index);
    bluetooth.println(buf);
    //bluetooth.println("**** STOP 0 ****");
    Signal[Index].status = 0;
    sprintf(buf, "led_go_0d% 0\n", Index);
    bluetooth.println(buf);
    //bluetooth.println("led_go_00 1\n");
    sprintf(buf, "led_stop_0d% 1\n", Index);
    bluetooth.println(buf);
    //bluetooth.println("led_stop_00 0\n");
    
  }
  bluetooth.println("--> erfolgt");
}//end-Action

Bei den Ausgaben an die Bluetooth-Schnittstelle kommt aber immer nur

Zitat:led_go_0d
led_go_0d

oder vergleichbar raus. Es sollte aber folgendes kommen:

Zitat:led_go_00 0
led_go_01 0

bei rüber geschickt werden.

Kann mir einer sagen, wo mein Formatierungsfehler liegt???

Gruß Jan
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.01.2020, 11:57
Beitrag #2
RE: Integer in Zeichenkette übernehmen
Code:
"led_go_%02d 1\n"

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.01.2020, 12:11
Beitrag #3
RE: Integer in Zeichenkette übernehmen
(30.01.2020 11:57)Tommy56 schrieb:  
Code:
"led_go_%02d 1\n"

Gruß Tommy

Moin!

danke für die Hilfe.

Ich habe dann da noch einen weiteren Fall in diesem Zusammenhang.

Code:
struct _Signal {
  char ref;
  byte pin_led_go;
  byte pin_led_stop;
  byte pin_relais;
  int status;
  boolean geradeaus;
};

Signal[0].ref = "Kleinensee";
    Signal[0].pin_led_go = 11; //---------- anpassen
    Signal[0].pin_led_stop = 12; //---------- anpassen
    Signal[0].pin_relais = 1; //---------- anpassen
    Signal[0].status = 0;

// Signal in Richtung Kleinensee
void SwitchSignal(int Index)
{
  char buf[20];
  if (Signal[Index].status  == 0){ // --> GO
    bluetooth.println("***** Go " + Signal[Index].ref + " *****");

Bei der Übersetzung kommt allerdings folgende Meldung:

Zitat:Blocksignal_Bruhnkaten:165:57: error: invalid operands of types 'const char*' and 'const char [7]' to binary 'operator+'

bluetooth.println("***** Go " + Signal[Index].ref + " *****");

Kannst Du dazu auch noch etwas sagen?

Gruß Jan
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.01.2020, 12:15
Beitrag #4
RE: Integer in Zeichenkette übernehmen
Du kannst char-Arrays nicht mit + verketten, sondern musst strcat benutzen
Hier ein paar Infos zu Zeichenketten in C/C++.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.01.2020, 13:37 (Dieser Beitrag wurde zuletzt bearbeitet: 30.01.2020 15:14 von Jan99.)
Beitrag #5
RE: Integer in Zeichenkette übernehmen
Code:
bluetooth.println(strcat(strcat("***** Go ",Signal[Index].ref)," *****"));

Damit hätte ich nicht gerechnet!

Danke trotzdem!

Gruß Jan
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.01.2020, 14:52
Beitrag #6
RE: Integer in Zeichenkette übernehmen
(30.01.2020 13:37)Jan99 schrieb:  
Zitat: too many arguments

????

Dann lies doch mal die Fehlermeldung!


Gruß Fips

Meine Esp8266 & ESP32 Projekte
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.01.2020, 15:12
Beitrag #7
RE: Integer in Zeichenkette übernehmen
(30.01.2020 14:52)Fips schrieb:  
(30.01.2020 13:37)Jan99 schrieb:  
Zitat: too many arguments

????

Dann lies doch mal die Fehlermeldung!


Gruß Fips

gehen denn immer nur 2 Parameter - kann ich mir fast nicht vorstellen!

gruß Jan
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.01.2020, 15:16
Beitrag #8
RE: Integer in Zeichenkette übernehmen
Ein Blick in die Dokumentation bestätigt deine Vorstellung nicht.

char * strcat ( char * destination, const char * source );


Zitat:Warum ein paar Minuten in der Dokumentation verbringen, wenn Sie ein paar Stunden damit verbringen können, Dinge nach dem Zufallsprinzip auszuprobieren?

Gruß Fips

Meine Esp8266 & ESP32 Projekte
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Zeichenkette auswerten Benny86 7 588 17.07.2020 16:59
Letzter Beitrag: Tommy56
  Integer nach Ascii-String ? itoa arduinofan 2 6.147 22.12.2015 15:34
Letzter Beitrag: arduinofan
  Integer Zahl in einer, zehner, hunderter und tausender zerlegen Schrittmotor 6 9.359 14.08.2015 18:07
Letzter Beitrag: Schrittmotor
  Integer Wert in das Eprom schreiben und auslesen Schrittmotor 5 5.036 02.08.2015 14:15
Letzter Beitrag: hotsystems
  Zeichenkette Serieller Monitor joshi31036 3 3.932 14.12.2013 13:14
Letzter Beitrag: rkuehle
  Convert Digital Inputs to Integer Heino 2 3.538 24.02.2013 22:27
Letzter Beitrag: rabam

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste