之所以这样写是因为发现频繁的调用函数会明显降低程序运行效率,假如我处理的是一个很大很大的文件,如电影剪切那么程序运行的时间将太长,但是用fread/fwrite的好处是可以整块数据的处理速度明显可以加快,比如下面是我写的剪切歌曲的程序,程序可以达到期待目的,当然里面有许多可以优化的地方,比如把名字换成从外界出入,这样就可以剪切任何文件了而不用每次都到代码里改名字.注:1048576字节就是1M
#include<stdio.h>
#define size 1048576
main()
{
char a[size],b[20];
int i=1,fileSize,n;
FILE *out,*in;
in=fopen("jiaru.mp3","rb");
if(!in) return;
fseek(in,0,2);//文件指针移到结尾
fileSize=ftell(in);//判断结尾的位置,也就是文件大小
fseek(in,0,0);//再移到文件头
n=fileSize/size;//求出数据的块数
while(i<=n)
{
sprintf(b,"jiaru%d.mp3",i);
out=fopen(b,"wb");
fread(a,size,1,in);
fwrite(a,size,1,out);
fclose(out);
i++;
}//剪切
sprintf(b,"jiaru%d.mp3",i);//下面四行处理剩下的字节
out=fopen(b,"wb");
fread(a,fileSize-n*size,1,in);
fwrite(a,fileSize-n*size,1,out);
fclose(out);
fclose(in);
}
[[it] 本帖最后由 faminxmu 于 2008-12-6 21:36 编辑 [/it]]