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