字符转浮点
#include <stdio.h> #include <stdlib.h> #include <string.h> typedef char BYTE ; typedef float DWORD; int main() { int i; FILE *fp1,*fp2; BYTE *data1=(BYTE *)malloc(400*640*sizeof(BYTE)); DWORD *data2=(DWORD *)malloc(400*640*sizeof(DWORD)); if((fp1=fopen("bhtmref.img","rb"))==NULL) { printf("can not open file!"); return 0; } if((fp2=fopen("sample2.txt","w"))==NULL) { printf("can not open file!"); return 0; } memset(data1,0,400*640*sizeof(BYTE)); /* 初始化 */ memset(data2,0,400*640*sizeof(DWORD)); fread(data1,sizeof(char),400*640,fp1); /* 将fp1里面的内容读入到data1*/ for(i=0;i<400*640;i++) { data2[i]=((int)data1[i])*1.0; /* data1里面的数据转换为浮点型 */ } for(i=0;i<400*640;i++) { if(i%640==0) /* 一行640列 */ { if(i==0) /* 写进去的第一个数字 如果省略,第一行将会多换空白 */ { fprintf(fp2,"%-4.0f",data2[i]); } else { fprintf(fp2,"\n",data2[i]); /* 每640列换行 */ fprintf(fp2,"%-4.0f",data2[i]); /* 换行完还得继续写数据,不能忘记 */ } } else { fprintf(fp2,"%-4.0f",data2[i]); /* 再把浮点转换为字符并写入到fp2里面 */ } } fclose(fp1); fclose(fp2); free(data1); free(data2); return 0; }