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;
}

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

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值