鱼C论坛

 找回密码
 立即注册
查看: 4012|回复: 6

内存分配问题fread使用

[复制链接]
发表于 2012-12-20 02:07:03 | 显示全部楼层 |阅读模式
5鱼币
#include "stdafx.h"
#include <string.h>
#include <ctype.h>
#include <stdio.h>
#include <time.h>
#include <stdlib.h>>
int _tmain(int argc, char* argv[])
{
FILE *write1,*read1;
char name1[100];
char name2[100];
printf("请要输入要被复制的文件名:");
gets(name1);
if((read1=fopen(name1,"r"))==NULL)
{
printf("您打开的文件不存在\n");
system("pause ");
}
static char *buffer;
fseek(read1,0,SEEK_END);
int len=ftell(read1);
buffer=new char(len);
rewind(read1);
buffer[len]=0;
fread(buffer,len,1,read1);
printf("您读入的文件为:%s",buffer);
printf("输入要复制到的文件:");
gets(name2);
if((write1=fopen(name2,"w"))==NULL)
{
printf("您要输入的文件当前不存在为您新建一个");
}
fwrite(buffer,sizeof(char),len,write1);
fclose(write1);
system("pause ");
return 0;
}
这段代码执行到fwrite就报错 我不知道错在哪里 求大侠指教 文件的目的是为了复制一个文件内容到另外一个文件内容 求原因,求指教

最佳答案

查看完整内容

lz贴出错误信息吧,这段代码有几个问题,不过代码执行到fwrite报错跟我想的不太一样。
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-12-20 02:07:04 | 显示全部楼层
lz贴出错误信息吧,这段代码有几个问题,不过代码执行到fwrite报错跟我想的不太一样。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-12-20 02:35:07 | 显示全部楼层
#include "stdafx.h"
#include <string.h>
#include <ctype.h>
#include <stdio.h>
#include <time.h>
#include <stdlib.h>>
int _tmain(int argc, char* argv[])
{
        FILE *write1,*read1;
        char name1[100];
        char name2[100];
        printf("请要输入要被复制的文件名:");
        gets(name1);
        if((read1=fopen(name1,"r"))==NULL)
        {
                printf("您打开的文件不存在\n");
                system("pause ");
        }
        static char *buffer;
        fseek(read1,0,SEEK_END);
        int len=ftell(read1);
        buffer=new char(len);
        rewind(read1);
        buffer[len+1]=0;
        //fread(buffer,len,1,read1);
        //printf("您读入的文件为:%s",buffer);
        printf("输入要复制到的文件:");
        gets(name2);
        if((write1=fopen(name2,"w"))==NULL)
        {
                printf("您要输入的文件当前不存在为您新建一个");
        }
        fseek(write1,0,SEEK_SET);
        while((        fread(buffer,len,1,read1))>0)
        fwrite(buffer,sizeof(char),len,write1);
        printf("您读入的文件为:%s",buffer);
        fclose(write1);
        system("pause ");
        return 0;
}
前面那个问题已解决 现在出现新的问题 文本文件只要有隔行输入文字 就回报错 请问原因。跪求啊 弄了我一晚上了
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-12-20 10:34:49 | 显示全部楼层
编译正常 运行程序的时候输入到复制文件就回异常,我感觉问题应该在
  new char 这样分配内存空间的问题
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-12-20 10:43:46 | 显示全部楼层
已解决 自己粗心大意。。{:1_1:}谢谢2楼的朋友的回答:lol分还是给你嘎嘎
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-4-24 18:59:30 | 显示全部楼层
来看看呵呵
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-5-16 15:03:14 | 显示全部楼层
强烈支持楼主ing……
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-8-13 19:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表