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

输出16进打造为字符串

2013-08-01 
输出16进制作为字符串void main(int argc,char**argv){int nchar buf[3]FILE *sfint isffopen(hrand

输出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);

热点排行