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 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器