首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

c语言使用数组接收MAC地址有关问题

2013-09-28 
c语言使用数组接收MAC地址问题#define MAC 00-1e-33-44-55-66unsigned char mac[6]怎样可以将MAC格式化

c语言使用数组接收MAC地址问题
#define MAC "00-1e-33-44-55-66"

unsigned char mac[6];
怎样可以将MAC格式化到mac数组里面啊。
我使用的方法是,sscanf(MAC,"%2x-%2x-%2x-%2x-%2x-%2x", &mac[0],&mac[1],...,&mac[5]);
这样子在linux下会报warning:格式化"%2x"需要unsigned int *,但是这里是unsigned char *。在windows下用dev-c++不会报错,但是打印数组时(printf("%2x",mac[i])循环打印),打印结果是01e33445566,第一个0是一个空格。
是在不知道怎么解决,求大家帮帮忙!
[解决办法]

#define MAC "00-1e-33-44-55-66"
unsigned char mac[6];
int v[6],i;
sscanf(MAC,"%2x-%2x-%2x-%2x-%2x-%2x", &v[0],&v[1],&v[2],&v[3],&v[4],&v[5]);
for (i=0;i<6;i++) mac[i]=(unsigned char)v[i];

热点排行