#include<stdio.h>
#include
int main()
{
void fg(FILE *fp1,double i);
FILE *fp;
char filename[10];
double i;
printf("请输入文件名:");
scanf("%s",filename);
printf("请输入每个文件大小(MB):");
scanf("%d",&i);
//i=i*1024*1024;//
printf("%d",i);
fp=fopen(filename,"r"); //只读的方式打开//
double j=0;
FILE *sp; //分割子文件的指针//
char ch; //转移字符的容器//
char filename2[10]={'a'}; //初始文件名//
while(!feof(fp))
{
sp=fopen(filename2,"w+");
for(j=1;j<=i;j++)
{ if(!feof(fp))
{
ch=fgetc(fp);
printf("%c",ch);
fputc(ch,sp);
}
else break;
fclose(sp);
sp=0;
filename2[0]++;//重命名//
sp=fopen(filename2,"w+");//文件指针指向新文件//
}
printf("%d",j);
fclose(sp);
fclose(fp);
}
}
不知道错在什么地方!
#include //1)这个不算问题可以不论,不过是没有包含头文件,似乎也改正了
int main()
{
void fg(FILE *fp1,double i); //2) 没提供这个函数的实现,这里也没用到
FILE *fp;
char filename[10];
double i; //3)浮点数表示文件长度,不利于精确表示文件长度
printf("请输入文件名:");
scanf("%s",filename);
printf("请输入每个文件大小(MB):");
scanf("%d",&i); //4)输入浮点数方式错误,格式不对
//i=i*1024*1024;//
printf("%d",i); //5)输出错误,格式不对
fp=fopen(filename,"r"); //只读的方式打开//
double j=0; //6)字符计数也不宜用浮点数。
FILE *sp; //分割子文件的指针//
char ch; //转移字符的容器//
char filename2[10]={'a'}; //初始文件名// //7)文件名直接用字符串更好
while(!feof(fp))
{
sp=fopen(filename2,"w+");//8)既然是分割,最好创建新文件,不需要w+方式,wb方式就可以了
for(j=1;j<=i;j++)
{ if(!feof(fp))
{
ch=fgetc(fp);
printf("%c",ch);
fputc(ch,sp);
}
else break; //9)直接break 不太好
fclose(sp);
sp=0;
filename2[0]++;//重命名// //10)这样重命名不太好,而且最多只有26个文件名可读。
sp=fopen(filename2,"w+");//文件指针指向新文件// //11)文件打开两次,是多余的,不必要
}
printf("%d",j); //输出错误,格式不对
fclose(sp);
fclose(fp);
}
}