csdn_yankang 2014-05-14 03:23 采纳率: 0%
浏览 1951

C++关于文件操作的代码错误(实现文件分割)

#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);
}
}
不知道错在什么地方!

  • 写回答

1条回答 默认 最新

  • lm_whales 2014-05-14 08:40
    关注

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

    评论

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog