mit sscanf Hex Zahlen selektieren

Gast #1879344
Lesenswert?

Hallo,
ich empfange über die Uart die Zeichenkette   41 0C 12 BA\n . Nun möchte 
ich aus dieser Kette die beiden letzten Hex(12 und BA) rausholen und als 
int speichern. Würde das so richrig sein?
int temp1
int temp2
uint8_t rx_buffer[128];

sscanf(rx_buffer,"%*s %*s %X %X",&temp1,&temp2);
Danke und Gruss
#1879531
Lesenswert?

sieht ok aus.
Außer, daß zu %x eigentlich unsigned int gehört, nicht int.

Ach ja, und ein paar Semikolon fehlen natürlich :-)

PS:

Was auch fehlt, ist der Rückgabewert von sscanf().
Daran kann man erkennen, wenn es nicht geklappt hat und entsprechend 
reagieren anstatt mit Phantasiewerten weiter zu arbeiten.
#1879762
Lesenswert?

Wenn du dir absolut sicher bist, daß die Eingabe vernünftig ist,
kann man den Rückgabewert ignorieren.
Aber was ist schon sicher außer dem Tod?

Deshalb ist es im Zweifelsfall immer besser, unsinnige
Eingaben zu erkennen und wie auch immer zu reagieren, als
unbemerkt mit unsinnigen Werten weiter zu rechnen.
An solchen Dingen sieht man, wer pfuscht.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren