Ich arbeite in einer mqtt-Anwendung und wenn ich die Informationen der Nutzlast von der mqtt-Broker erhalten und versuchen, es von der void *, das ist message-> Payload zu einem int als zu konvertierenUmwandlung von void * in int in C++
signed int var_1=*((int*) message->payload);
statt es auf die Anzahl der Umwandlung sie es in ein anderes konvertiert, um zu sehen, das ich den folgenden Code verwenden:
printf("Message:%s\n",message->payload);
printf("Message:%i\n",var_1);
Welche zeigt:
Message:-58
Message:3683629
Ich dachte auch über die Nutzlast eine Zeichenfolge zu sein, aber wenn ich die stoi Funktion verwenden, es gibt mir den Fehler:
can not convert from ´void*´ to ´int´ with stoi function.
was fragen Sie hier genau? was soll "message-> Payload" eigentlich sein? ein Puffer, der "int" oder ASCII-String darstellt? –
Die eigentliche Frage ist, wie wird die Nachricht gesendet? Der Absender hat etwas getan, um eine Nutzlast aus seinen Daten zu erstellen. Sie müssen diesen Prozess umkehren. –
'anstatt es in die Zahl umzuwandeln, die es in eine andere umwandelt. 'Was ist die Zahl, die Sie dann erwartet haben? – user2079303