char zusammenfügen

S

seru

Ich habe eine Frage zu folgenden Code:

char hlf;
char m_sBufRes[98];

hlf = m_sBufRes[27]+m_sBufRes[28]+m_sBufRes[29]+m_sBufRes[30];


in m_sBufRes[27] steht 0
in m_sBufRes[27] steht 3
in m_sBufRes[27] steht 4
in m_sBufRes[27] steht 1

Steht nun in hlf 0341?
Wenn ja wie kann ich diese Char Variable in eine Float Variable umwandenln
 
Ich habe eine Frage zu folgenden Code:

char hlf;
char m_sBufRes[98];

hlf = m_sBufRes[27]+m_sBufRes[28]+m_sBufRes[29]+m_sBufRes[30];


in m_sBufRes[27] steht 0
in m_sBufRes[28] steht 3
in m_sBufRes[29] steht 4
in m_sBufRes[30] steht 1

Steht nun in hlf 0341?
Nein, in hlf steht '0' + '3' + '4' + '1' = 48 + 51 + 52 + 49 = 200 (vgl. ASCII Tabelle).
Wenn ja wie kann ich diese Char Variable in eine Float Variable umwandenln
Du könntest sscanf verwenden.

Gruß
 
Danke für den Link hilft mir jedoch nicht weiter. Ich schreibe die Daten in den Buffer: m_sBufRes über die serielle Schnittstelle. Dann möchte ich nur die Arrayfelder 27,28,29,30 zusammenfügen und in eine float Variable schreiben
 
Du kannst den ganzen Block in eine float-Variable kopieren:
C++:
float fValue;
memcpy(&fValue, m_sBufRes + 28, sizeof(float));
Gruß
MCoder
 
Ok danke das hilft mir schon mal weiter nur mein Problem wie ich die einzelen Array Felder zusammenfüge ist immer noch nicht gelöst.
Frage noch zu deinem Code
cpp Code:

float fValue;
memcpy(&fValue, m_sBufRes + 28, sizeof(float));

was macht das m_sBufRes +28

Habe noch eine weitere Frage:

Wie kann ich folgenden ASCII Code am Einfachsten in ein char schreiben?+

ASCII Code: 1001 0000000000

Die Rechtecke stehen für STX und ETX Start up Text und End up Text
 
1001!0000000000¡ das ist ein ASCII Code den ich gerne in ein Char Array schreiben würde. Sprich jedes Zeichen steht für 1byte. Wobei die Dreiecke STX und ETX sind.
Alles was ich bis jetzt versucht habe hat nicht funktioniert
 

Neue Beiträge

Zurück