在程序设计中,有时候要用到一些二进制文件,要访问这些文件,这时一种常用的方法就是将二进制文件中的内容提取出来,放到一个数组中,程序直接调用数组内容,这样就大大提高了访问速度。本文要说的不是如何将调用二进制文件的地方转化为数组(事实上,这种转换也不难,例如可以建一个包含文件名和数组名字的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;
}
|
阅读(10878) | 评论(1) | 转发(0) |