吧问题补充下。
就是先建立一个二进制文件,里面都是int。比如11223455。(当然二进制文件里面不会显示出这些,而是些乱码)
然后从这个二进制文件中读取,结果写入一个文本文件,结果应该显示为:1 22 3 4 55 。就是2个1,2个2,1个3,1个4,2个5。每组用空格隔开。
建立二进制文件我写的是:
FILE *f1;
int arr[8]={1,1,2,2,2,3,4,4};
char buf[20];
int i;
f1=fopen("test","w");
for(i=0;i<8;i++)
{
fwrite((arr+i),sizeof(int),1,f1);
}
fclose(f1);
读取二进制,将结果写入文本文件我用的是:
FILE *f1,*f2;
char buf1[20],buf2[20];
int tmp1,tmp2;
int count=0;
char c;
f1=fopen("test","rb");//源文件,二进制,里面是int
f2=fopen("desti.txt","w");//目标文件,要求是文本文件
while(!feof(f1))
{
fread(&tmp1,sizeof(int),1,f1);
if(!fread(&tmp2,sizeof(int),1,f1))break;
for(count=0;count<tmp1;count++)
{
fprintf(f2,"%d",tmp2);
}
fputc(' ',f2);
}
fclose(f1);
fclose(f2);