Я хочу прочитать шестнадцатеричное значение из строки и сохранить его в переменной,
Я использую sscanf
, но исходное число составляет 6 байт, и я получаю только младшие 4 байта.
это код, который я использую:
#include <stdio.h>
int main(void) {
const char my_string[] ="\r\n0080254800DA 0x02 C\n0080254800DA 0x02 P\n9C04EB06ACA2 0x03 P";
unsigned int a,b,c,d,e,f;
char s1,s2,s3;
sscanf(my_string, "\r\n%16x %X %c\n%16x %x %c\n%16x %x %c\n", &a, &b, &s1,&c,&d,&s2,&e,&f,&s3);
printf("\r\n%#-X %#2x %c\n%#-X %#2x %c\n%#-X %#2x %c\n", a,b, s1,c,d,s2,e,f,s3);
return 0;
}
и вот результат, который я получаю:
0X254800DA 0x2 C
0X254800DA 0x02 P
0XEB06ACA2 0x3 P
как я могу это исправить?