69,371
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
#include <string.h> //mesmet
#include <stdlib.h> //malloc
typedef char BYTE ;
typedef float WORD ;
int main()
{
int i,j;
FILE *fp1,*fp2;
BYTE *data1=(BYTE *)malloc (512*512*6*sizeof(BYTE));
WORD *data2=(WORD *)malloc (512*512*sizeof(WORD));
BYTE *filename=(BYTE *)malloc(20*sizeof(BYTE));
if((fp1=fopen("bhtmref.img","rb"))==NULL)
{
printf("Can not open file!\n");
return 0;
}
//初始化
memset(data1,0,512*512*6*sizeof(BYTE));
memset(data2,0,512*512*sizeof(WORD));
memset(filename,'\0',20*sizeof(BYTE));
//六个循环也控制输出的六个文件
for(i=0;i<6;i++)
{
sprintf(filename,"%s%d","samples",i);
if((fp2=fopen(filename,"wb"))==NULL)
{
printf("Can not open file!\n");
return 0;
}
//每次读一块,即512*512
fread(data1,sizeof(BYTE),512*512,fp1);
//转换为实型
for(j=0;j<512*512;j++)
{
data2[j]=((int)data1[j])*1.0;
}
//把一块数据从fp2写到文件中
fwrite(data2,sizeof(WORD),512*512,fp2);
}
return 0;
}