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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.