怎么将二进制文件转换成可以阅读的文本文件
如何将二进制文件转换成可以阅读的文本文件
我想把一个二进制文件转换成可以阅读的文本文件,以下是我写的程序,不知道错在什么地方,老是转不过来。如能帮我解决,重赏!!!
#include<stdio.h>
#include<stdlib.h>
typedef struct data123
{
unsigned char* buffer[100];
}DATA;
DATA readbin(FILE* bin);
void writetxt(DATA* data1,FILE* txt);
int main(void)
{
FILE* bin;
FILE* txt;
DATA data1;
if((bin=fopen("123.bin","rb"))==NULL)
printf("can't open the file!\n");
if((txt=fopen("a.txt","w"))==NULL)
printf("can't open the file!\n");
while(!feof(bin))
{
data1=readbin(bin);
fprintf(txt,"%c",&data1);
}
writetxt(&data1,txt);
if(feof(bin))
{
printf("error");
}
fclose(bin);
fclose(txt);
return 0;
}
DATA readbin(FILE* bin)
{
int ioresult;
DATA data2;
ioresult=fread(&data2,sizeof(DATA),1,bin);
if(!ioresult)
if(!feof(bin))
exit(100);
}
void writetxt(DATA* data1,FILE* txt)
{
fwrite(data1,sizeof(DATA),1,txt);
}
------解决方案--------------------
我想把一个二进制文件转换成可以阅读的文本文件,以下是我写的程序,不知道错在什么地方,老是转不过来。如能帮我解决,重赏!!!
#include<stdio.h>
#include<stdlib.h>
typedef struct data123
{
unsigned char* buffer[100];
}DATA;
DATA readbin(FILE* bin);
void writetxt(DATA* data1,FILE* txt);
int main(void)
{
FILE* bin;
FILE* txt;
DATA data1;
if((bin=fopen("123.bin","rb"))==NULL)
printf("can't open the file!\n");
if((txt=fopen("a.txt","w"))==NULL)
printf("can't open the file!\n");
while(!feof(bin))
{
data1=readbin(bin);
fprintf(txt,"%c",&data1);
}
writetxt(&data1,txt);
if(feof(bin))
{
printf("error");
}
fclose(bin);
fclose(txt);
return 0;
}
DATA readbin(FILE* bin)
{
int ioresult;
DATA data2;
ioresult=fread(&data2,sizeof(DATA),1,bin);
if(!ioresult)
if(!feof(bin))
exit(100);
}
void writetxt(DATA* data1,FILE* txt)
{
fwrite(data1,sizeof(DATA),1,txt);
}
------解决方案--------------------
- C/C++ code
void writetxt(DATA* data1,FILE* txt) { fwrite(data1,sizeof(DATA),1,txt); }//这个其实还是二进制,你把DATA里的数据以字符串格式写入就是了