Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1081641
  • 博文数量: 226
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 2504
  • 用 户 组: 普通用户
  • 注册时间: 2006-06-21 14:12
文章分类

全部博文(226)

文章存档

2011年(1)

2010年(2)

2009年(68)

2008年(4)

2007年(27)

2006年(124)

我的朋友

分类: C/C++

2008-12-05 21:30:26

在程序设计中,有时候要用到一些二进制文件,要访问这些文件,这时一种常用的方法就是将二进制文件中的内容提取出来,放到一个数组中,程序直接调用数组内容,这样就大大提高了访问速度。本文要说的不是如何将调用二进制文件的地方转化为数组(事实上,这种转换也不难,例如可以建一个包含文件名和数组名字的struct即可),而是要讨论的如何将二进制文件内容提取到数组中去,在此,抛砖引玉,自己编写了一段代码,提供了一个小工具用来转换:


 

程序很简单,就不多说了,需要说的是,程序统计了该文件包含多少字节的数据(sum)。

int main(int argc, char* argv[])
{
    FILE* fBin, *fSrc;
    int n, sum = 0;

    if (argc != 2)
    {
         printf("usage:%s binName, srcName\n", argv[0]);
          return -1;
    }
    if ((fBin = fopen(argv[1],"rb")) == NULL)
    {
        printf("fopen fail\n");
        return -1;
    }
   if ((fSrc = fopen("new.txt", "wb") == NULL)
   {
        printf("fopen fail\n");
        return -1;
    }
    while((n = fread (&num, sizeof(char),1,fBin)) != 0)
    {
        sum++;
        fprintf(fSrc, "%d,", num);
    }

    printf("sum = %d\n", sum);
    fclose(fSrc);
    fclose(fBin);

    return 0;
}

阅读(10868) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

qilzm2008-12-06 08:47:29

支持!!