读书人

输出16进打造为字符串

发布时间: 2013-08-01 15:23:18 作者: rapoo

输出16进制作为字符串

void main(int argc,char**argv)
{
int n;
char buf[3];
FILE *sf;
int i;
sf=fopen("hrandsh.dump","rb");
fseek(sf,5,0);
n=fread(buf,sizeof(char),2,sf);
for(i=0;i<n;i++)
{
printf("%02x",buf[i]);
}
fclose(sf);
printf("\n%s\n",buf);
}


输出结果如下:
504f --16进制
PO --字符
我是想把buf以16进制读出来作为一个字符串来和另外一个字符串作比较,比如:
if (strcmp(buf的16进制,"504f")==0)

如何实现这个?

非常感谢
[解决办法]
引用:
Quote: 引用:

Quote: 引用:

是一个二进制文件

试试我的程序呢


谢谢两位

void main(int argc,char**argv)
{
int n;
char buf[10],ch[10];
FILE *sf;
int i;
if ((sf=fopen("hrandsh.dump","rb"))==NULL)
printf("Can't open the file!");
fseek(sf,1,0);
n=fread(buf,sizeof(char),2,sf);
sprintf(ch,"%04x",atoi(buf));
printf("\n%s\n",ch);
fclose(sf);
}

输出结果是0000

你虽然把buf和ch改到了10,但你读的时候还是2,fread(buf,sizeof(char),2,sf);

读书人网 >C语言

热点推荐