#include <stdio.h>
#include <string.h>
int getdiff(char ch);
void main(void)
{
FILE *rfp,*wfp;
char msg[256];
rfp=fopen("..\\ADS_B20141112.txt","r");
wfp=fopen("..\\ADS_B20141112.dat","w+b");
if (rfp==NULL || wfp==NULL)
return;
int i,num;
while (!feof(rfp))
{
fgets(msg,256,rfp);
i=0;
while (msg[i]!=0x0a && i<256)//0x0a代表换行符,应为该文本打印出来是16进制的格式所以读取的ASCII的值是16进制的,而16进制中0x0a正好代表换行符
{
num=0;
num=getdiff(msg[i])*16;//*16,
num+=getdiff(msg[i+1]);//加上后一位
i+=3;//跳过空格
fwrite(&num,1,1,wfp);//fwrite(指针存放输出数据的首地址,数据块的字节数,读取数据块的个数,文本指针)?不确定打印的结果1个字节1个字节打印所以用1
}
}
fclose(wfp);
fclose(rfp);
}
int getdiff(char ch)
{
int diff=0;
if (ch>='0' && ch<='9')
diff=ch-'0';
if (ch>='A' && ch<='F')
diff=ch-'A'+10;//换位11到15的数字
return diff;
}
将txt文件转化为二进制文件
最新推荐文章于 2024-05-09 17:22:03 发布