c语言文件读取十六进制数据问题,例如文件中数据是: 0x781523

例如文件中数据是(两行): 0x781523
0x124574
怎样能把数据按照每两位的十六进制的形式读出来,如a读出来像这种形式 a=0x78,b=0x15,c=0x23
哪位朋友能帮忙写下参考代码

第1个回答  2013-10-24
#include <stdio.h>

int main(void)
{
int s;
int a,b,c;
s=0x781523;
a=((0xff<<16)&s)>>16;
b=((0xff<<8)&s)>>8;
c=((0xff<<0)&s)>>0;
printf("0x%x\n",a);
printf("0x%x\n",b);
printf("0x%x\n",c);
}追问

需要从文件中读出来在赋值给啊,a,b,c变量,主要问题是读出来的方法,麻烦这位朋友了

追答

#include
#include
#include
#define filepath "/home/Mytest/test.txt"

int main(void)
{

int a,b,c,s,i;
FILE *Fd;
if ((Fd=fopen(filepath,"r"))==NULL) //判断文件是否正常打开
{
printf("error!\n");
return -1; //打开失败就退出
}
while(!feof(Fd)) //文件没到结尾
{
fscanf(Fd,"%x",&s); //十六进制方式读取一个数
printf("%x\n",s);
a=((0xff>16; //将十六进制数拆分成三段。
b=((0xff>8;
c=((0xff>0;
printf("0x%x\n",a);
printf("0x%x\n",b);
printf("0x%x\n",c);
}
fclose(Fd); //操作完毕关闭文件。
return 0;
}

本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网