文本文件保存为二进制文件

bool cFileCtrl::saveFile()
{
 ofstream binfile("packUI.bin",ios::binary); 
 for ( unsigned int i = 0; i < allFileName.size(); i++)
 {
   FILE* stream; 
   string fileString = '$'+ allFileName[i].cPath+ '$';

   if( (stream  = fopen( allFileName[i].cPath.c_str(), "r+b" )) == NULL )
   {
    printf( "The bin file %s was not opened/n", allFileName[i].name.c_str() );
    return false;
   }
   else
   {
    fseek(stream, 0, SEEK_END);    
    long length = ftell(stream);
    char* allc = (char*)malloc(length);
    memset(allc, 0, length);
    fseek(stream, 0, SEEK_SET);   
    char fileLeng[8] = {0};
    sprintf(fileLeng, "%d", length);
    fileString = fileString + fileLeng;
    fileString = fileString + "$";

    int tt = 0;

    char* p = allc;
    while( !feof( stream ) )
    {
     char buf[128];
     ZeroMemory( buf, 128);
     tt = fread(buf, sizeof(char), 100, stream);
     memcpy(p, buf, tt);
     p += tt;
    }
    binfile.write(fileString.c_str(),fileString.length());
    binfile.write(allc,length);    
    free(allc);
   }
   fclose( stream );
 }
 return true;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值