这篇文章主要介绍了C语言如何实现文本文件/二进制文件格式互换,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
本程序要自己创建个文本格式的输入文件a1.txt,编译后能将文本文件前255字节以内的字符转换成相应的AscII码值的二进制表示,并存入输出文件a2.txt中。然后再将二进制文件还原并存入a3.txt文件。

具体代码如下:
#include<cstdio>
#include<stdio.h>
#include<string.h>
#defineNSIZE8
voidprint_2(intval2);
/***********文本文件转二进制**********/
voidText2Bin(constchar*sIn,constchar*sOut){
chara[255];
intcount=0;
intch;
for(intj=0;j<255;j++)a[j]='\0';
FILE*fin=fopen(sIn,"r");
FILE*fout=fopen(sOut,"w");
for(inti=0;i<=255;i++)fscanf(fin,"%c",&a[i]);
for(intk=0;k<=254&&a[k]!='\0';k++)
{
ch=a[k];
for(inta=7;a>=0;a--)fprintf(fout,"%d",ch>>a&1);
//fprintf(fout,"\n");
}
fclose(fin);
fclose(fout);
}
/***********二进制文件转文本文件**********/
voidBin2Text(constchar*sIn,constchar*sOut){
FILE*fin=fopen(sIn,"r");
FILE*fout=fopen(sOut,"w");
charstr[255*8];
for(intr=0;r<255;r++)str[r]='\0';
inti=0,j=0,iTemp=0,flag=0;
intibina[NSIZE];
charcRead[NSIZE];
charcChar;
for(inta=0;a<=255;a++)fscanf(fin,"%c",&str[a]);
//for(intf=0;f<=255;f++)printf("%c",str[f]);
while(flag<=255){
//printf("%d",flag);
for(intb=flag;b>=flag&&b<flag+NSIZE;b++)
{
//printf("%d",b%8);
cRead[b%8]=str[b];
//printf("%c",cRead[b%8]);
}
for(i=0;i<NSIZE;i++)
{
ibina[i]=(cRead[i]-'0');
}
iTemp=1;
cChar=0;
for(j=7;j>=0;j--)
{
//printf("%c",ibina[j]);
//printf("%d\n",cChar);
cChar+=ibina[j]*iTemp;
iTemp*=2;
}
printf("%c",cChar);
fprintf(fout,"%c",cChar);
flag=flag+8;
}
fclose(fin);
fclose(fout);
}
intmain(){
Text2Bin("d:\\a1.txt","d:\\a2.txt");
Bin2Text("d:\\a2.txt","d:\\b2.txt");
printf("\nSuccessfullyconvertedfile!\n");
return0;
}
感谢你能够认真阅读完这篇文章,希望小编分享的“C语言如何实现文本文件/二进制文件格式互换”这篇文章对大家有帮助,同时也希望大家多多支持恰卡编程网,关注恰卡编程网行业资讯频道,更多相关知识等着你来学习!