雷霆nba三巨头:关于函数sscanf的使用

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/05 01:46:36
char a,b,c,d;
char *tmp="dd:2a:41:4f";

sscanf(tmp,"%02x:%02x:%02x:%02x",&a,&b,&c,&d);
printf("%02x:%02x:%02x:%02x\n", a,b,c,d);

输出的结果为什么a中存放的十六进制不是0xdd
b中存放的十六进制不是0x2a
c中存放的十六进制不是0x41
但是d中存放的是对的是0x4f
谁能告诉我哪块出错了么
谢谢

char a,b,c,d;
改成int a,b,c,d;

unsigned char a,b,c,d;
unsigned char tmp[100];
sprintf( tmp, "%c:%c:%c:%c", 0xDD, 0x2A, 0x41, 0x4F );
sscanf( tmp, "%c:%c:%c:%c", &a, &b, &c, &d );
printf("%02x:%02x:%02x:%02x\n", a, b, c, d);

或者用楼上的方法 把

char a,b,c,d;
改成int a,b,c,d;