c语言文件读取十六进制数据问题,例如文件中数据是: 0x781523
答案:1 悬赏:70 手机版
解决时间 2021-02-17 09:06
- 提问者网友:嘚啵嘚啵
- 2021-02-17 06:13
c语言文件读取十六进制数据问题,例如文件中数据是: 0x781523
最佳答案
- 五星知识达人网友:忘川信使
- 2021-02-17 06:50
#include
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)&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);
}
fclose(Fd); //操作完毕关闭文件。
return 0;
}
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)&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);
}
fclose(Fd); //操作完毕关闭文件。
return 0;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯