zoukankan      html  css  js  c++  java
  • C++读写二进制文件

     
    代码
    #include "stdafx.h"
    #include 
    "stdio.h"
    #include 
    "string.h"
    #include 
    "stdlib.h"
    #define  MAXLEN 1024
    void Fill0(char t[])
    {
        
        
    if(strlen(t)<2)
        {
            t[
    1]=t[0];
            t[
    0]='0';
            t[
    2]=0;
        }
    }
    int   binaryToString(char *from,char *to)   
      {   
              FILE 
    *fp;
          FILE 
    *out;
         
          fp
    =fopen(from,"rb");
          
    out=fopen(to,"w");
          
    if(!fp||!out){
                printf(
    "error!\n");
                
    return -1;
          }
          unsigned 
    char c;
          
    int count;

        
    char cc[2];
        
    int size=0;
          
    while((count=fread(&c, 11, fp)) == 1)
          {
            
            
            sprintf(cc,
    "%x",c); 
            Fill0(cc);
        
            
            fwrite(cc,
    1,2,out);

                size
    ++;
            
          }
          printf(
    "total:%d",size);
              fclose(
    out);
              fclose(fp);
              
    return   0;   
      }   
    int stringToBinary(char *from,char *to)
    {
            FILE 
    *fp;
          FILE 
    *out;

          fp
    =fopen(from,"r");
          
    out=fopen(to,"wb");
          
    if(!fp||!out){
                printf(
    "error!\n");
                
    return -1;
          }
          
          
    int count;

        
    char cc[2];
        
    int size=0;
        
    int d=0;
          
    while((count=fread(cc, 12, fp)) == 2)
          {
        
                sscanf(cc,
    "%2x",&d); 

        
            fwrite(
    &d,1,1,out);
        
                size
    ++;
            
          }
          printf(
    "total:%d",size);
              fclose(
    out);
              fclose(fp);
              
    return   0;   
    }


    int main(int argc,char* argv[])
    {
        
        
    if(argc!=4)
        {
            printf(
    "cmd -tos|tob <srcFile> <destFile>\n");
            getchar();
            
    return -1;
        }
        
    if(strcmp(argv[1],"tos")==0)
        {
            binaryToString(argv[
    2],argv[3]);
        }
        
    else if(strcmp(argv[1],"tob")==0)
        {
            stringToBinary(argv[
    2],argv[3]);
        }
        
    return 1;
    }
  • 相关阅读:
    Timestamp 转 date
    【mysql】 mysql 子查询、联合查询、模糊查询、排序、聚合函数、分组----------语法
    【mysql】新增、修改、删除、查询 语法讲义
    【jQuery05】通过按键 来切换 class
    【jQuery04】折叠树
    【jQuery03】简单的选项卡切换
    【jQuery02】点击标题面板显示内容
    python-day70--django-Mysql-单表增删改查
    python-day68--模型层基础(model)
    python-day67--MTV之Template
  • 原文地址:https://www.cnblogs.com/yangyh/p/1740371.html
Copyright © 2011-2022 走看看