c++从文件读数据转换为二进制,再转换为字符文件

  • Post author:
  • Post category:其他


#include <fstream>

#include <stdio.h>

第一部分:读文件,调用toBinarry函数

int len;

int orfile[65535];

CFile fs;

fs.Open(strFileName,CFile::modeRead);

len=fs.GetLength();

char str[65535];

fs.Read(str,len);

fs.Close();

toBinary(str,orfile,len*8);

第二部分:将二进制数组转换为字符串写到文件

int newfile[65535];

toChar(orfile,newfile,len*8,len);

ofstream f1(“c://test.txt”,ios::app);

f1.write(newfile,len);

f1.close();

第三部分:两个函数toBinary,toChar

void CSampleDlg::toBinary(const char* a,int* b,int l)

{//转换为二进制

for(int i=0;i<l;++i)

{

int pos=i/8;

int mask=1<<i%8;

b[i]=a[pos]&mask;

if(b[i]>0)

b[i]=1;

}

}

void CSampleDlg::toChar(const int* b,char *a,int l,int al)

{//将二进制转换为汉字

//char *a=new char[6];

memset(a,0,al);

int pos;

for(int i=0;i<l;++i)

{

pos=i/8;

int mask=1<<i%8;

if(b[i])

a[pos]|=mask;

}

//a[pos+1]=’\0′;

}



版权声明:本文为lxp116原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。