维尔利特唯美图片:关于函数sscanf的使用

来源:百度文库 编辑:高考问答 时间:2024/04/29 05:04:45
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;