首先要实现这个功能,一开始便要知道要分割的文件的文件大小
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;
}
其实,也很简单,看不懂的部分下面留言吧,我会回复的!!!