#include <stdio.h>
#include <Windows.h>
#include <math.h>
#include <atlstr.h>
#include <stdlib.h>
#include<string>
int main(){
FILE *fp = NULL;
FILE *sf = NULL;
fp = fopen("E://11111//2s.dat", "rb"); //这个是需要转的文件
sf = fopen("2s.txt", "w+t");//这个是要转为的文件
if(fp==NULL || sf==NULL)
{
if(!fp) fclose(fp);
if(!sf) fclose(sf);
printf("open file error!!\n");
return 0;
}
char ch;
int i=4;
int num=0;
char temp=NULL;
//我这里的需要是指针在第四位的时候,所以初始值定位在第四位。
//正常情况下定位在第一位 使用 fseek(fp, 0, SEEK_SET);替换
fseek(fp, i, SEEK_SET);//设置初始化指针位置
while(!feof(fp)){//当不到文件末尾时就反复的读取
num++;
ch = fgetc(fp);//读取一个字符
//界面显示输出以%x16进制显示,%02x表示当读取字符不足两位是用0补齐
printf("%02x ",(unsigned char)ch); //为了方便查看指针位置和读取的对不对
//这个是写入文件 以%x16进制显示,%02x表示当读取字符不足两位是用0补齐
fprintf( sf, "%02x", (unsigned char)ch);
if(num==4){//这里是我的文件中特殊需要将指针每读完四次,就跳转到下一个需要读取的位置
i=i+32;
fseek(fp,i, SEEK_SET);
num=0;
fprintf( sf, "\n");//这个是让写入文件后换行
// system("PAUSE");
}
// system("PAUSE");
}
fclose(fp);//关闭指针
fclose(sf);
system("PAUSE");
return 0;
}
此处附上使用Java实现16进制转10进制float类型存储到文件中的链接
使用Java实现16进制转10进制float类型存储到文件
上述代码均已测试成功。