#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;
}