字符转浮点

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

原文地址:https://www.cnblogs.com/zerocc/p/1893965.html