C语言 -- 文件操作 实现文件的分割与合并-文件分割

//C语言 -- 文件操作 实现文件的分割与合并

#include <stdio.h>

//文件分割函数,执行成功返回1,否则返回0

int split(const char* src, const char *dest1, const char *dest2)

{

FILE *fin, *fout1, *fout2;//文件指针,分别指向源文件和两个分割文件

int ch;//整型

int ctl = 0;//控制变量

fin = fopen(src, "rb");//以读取和二进制的方式打开src所指定的文件

fout1 = fopen(dest1, "wb");//以写入和二进制的方式打开dest1所指定的文件

fout2 = fopen(dest2, "wb");

//判断以上三个文件是否正常打开

if(fin == NULL || fout1 == NULL || fout2 == NULL)

return 0;

while((ch = fgetc(fin)) != EOF)//fgetc 从文件当中获取一个字符 EOF end of file文件结尾

{

if(ctl = !ctl)

fputc(ch, fout1);

else

fputc(ch, fout2);

}

//关闭上面三个打开的文件

fclose(fin);

fclose(fout1);

fclose(fout2);

return 1;

}

//合并文件函数,执行成功返回1,否则返回0

int fuse(const char *dest, const char *src1, const char *src2)

{

FILE *fout, *fin1, *fin2;

int ch;

int ctl = 0;

fout = fopen(dest, "wb");

fin1 = fopen(src1, "rb");

fin2 = fopen(src2, "rb");

if(fout == NULL || fin1 == NULL || fin2 == NULL)

return 0;

while(1)

{

if(ctl = !ctl)

ch = fgetc(fin1);

else

ch = fgetc(fin2);

if(ch == EOF)

break;

else

fputc(ch, fout);

}

fclose(fout);

fclose(fin1);

fclose(fin2);

return 1;

}

int main()

{

//把一个文件分割成两个文件

const char * src = "2.webp";

const char * dest1 = "2_part1.dat";

const char * dest2 = "2_part2.dat";

//if(split(src, dest1, dest2))

//printf("分割完成!\n");

if(fuse("666.webp", dest1, dest2))

printf("合并完成!\n");

return 0;

}

C语言 -- 文件操作 实现文件的分割与合并

推荐阅读