- 论坛徽章:
- 0
|
#include <string.h>
#include<stdio.h>
#include <unistd.h>
#include <strings.h>
#define KEYLEN 4
int main(int arg,char ** argv)
{
if (arg != 2 )
{
printf("%s your_bin_array_strings\n",*++argv);
_exit(1);
}
int i=0,j=0;
unsigned char buf[KEYLEN];
for(i=0;i<len;i++)
{
printf("iiii=%d,\n",i);
if ( (i+1) % 4 == 0 && i>0)
{
int l=0;
char tempchar[5]={0};
for(l=0;l<4;l++)
{
tempchar[l] = argv[1][i+l-3];
}
tempchar[4] = '\0';
sscanf(tempchar,"0x%02x",&buf[j]);
j++;
}
}
for(i=0;i<4;i++)
{
printf("result=0x%02x",buf[i]);
}
return ;
} |
编译之后
输入
./a.out 0x8d0x7a0x700x37
期望得到的结果:
buf[0]:8d
buf[1]:7a
buf[2]:70
buf[3]:37
但结果好像不对,命令行的二进制字符串没有全部地被转换到buf,望高手指点一二。谢谢,
[ 本帖最后由 027xiatian 于 2009-11-30 16:11 编辑 ] |
|