C语言实现文件分割功能

首先要实现这个功能,一开始便要知道要分割的文件的文件大小

int sizefile(FILE *fp){
	int sizef=0;
	while(!feof(fp)){
		fgetc(fp);
		sizef++;
	}
	rewind(fp);
	return sizef-1;
}

上面这个函数实现了文件大小读取,唯一要注意的是,要将指针重新放回头部;

#include<stdio.h>
#include<stdlib.h>

int sizefile(FILE *fp);
int main(){
	FILE *fp1 = fopen("1.txt","rb");
	FILE *fp2;
	int n;				//储存文件大小的变量
	int d = 1;          //用于记录每个字节的复制情况
	int k;				//k为分割文件的个数
	int j=1;			//中止条件(具体看下面代码,很简单 除了while循环)
	char name[50];
	if(fp1==NULL){
		puts("Error!!!");
	}
	printf("分割文件个数:");
	scanf("%d",&k);
	n = sizefile(fp1);
	printf("%d",n);
	while(j<=k){
		printf("输入:");
		scanf("%s",name);
		if((fp2=fopen(name,"wb"))==NULL){
			puts("Error");
			return 0;
		}
		//下面这个保证了每次只将1/n的部分复制到指定文件
		while(d<=n*j/k){
			fputc(fgetc(fp1),fp2);
			d++;
		}
		j++;
	}
	

}

int sizefile(FILE *fp){
	int sizef=0;
	while(!feof(fp)){
		fgetc(fp);
		sizef++;
	}
	rewind(fp);
	return sizef-1;
}

其实,也很简单,看不懂的部分下面留言吧,我会回复的!!!

发布了50 篇原创文章 · 获赞 66 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/solitudi/article/details/104084469