| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 363 人关注过本帖
标题:文件操作 复制文件总是多个字
取消只看楼主 加入收藏
Dream_weaver
Rank: 1
等 级:新手上路
帖 子:37
专家分:2
注 册:2012-6-8
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:2 
文件操作 复制文件总是多个字
文件的复制操作,运行无误。
但是生成的文件中,bbb_cp的最后,总会多一个“烫?” 或者“烫”,这是为什么呢?

#include<stdio.h>
#include<stdlib.h> //exit
#include<string.h> //bzero
#define BUFFER_SIZE 1024
int main(void)
{
    FILE *from_fp,*to_fp;
    int len_from;
    char buffer[1024];

    if((from_fp=fopen("d:\\aaa.txt","r"))==NULL)
    {
        printf("open failure of from_fp.\n");
        exit(1);
    }

    if((to_fp=fopen("d:\\bbb_cp.txt","w"))==NULL)
    {
        printf("open failure of to_fp\n");
        exit(1);
    }
     fseek(from_fp,0L,SEEK_END);
     len_from=ftell(from_fp);
     fseek(from_fp,0L,SEEK_SET);
     printf("from file size is %d bytes\n",len_from);

     while(!feof(from_fp))
     {
         fread(buffer,BUFFER_SIZE,1,from_fp);
             if(len_from<BUFFER_SIZE)
                 fwrite(buffer,len_from,1,to_fp);
             else
             {
                  fwrite(buffer,BUFFER_SIZE,1,to_fp);
                  len_from-=BUFFER_SIZE;
             }
             memset(buffer,0,BUFFER_SIZE); //清空进行下一次读
     }

     fclose(from_fp);
     fclose(to_fp);
     return 0;
}
搜索更多相关主题的帖子: include failure 
2012-12-18 10:59
Dream_weaver
Rank: 1
等 级:新手上路
帖 子:37
专家分:2
注 册:2012-6-8
收藏
得分:0 
问题我已经找出来了 两个文件的打开方式都要是二进制的
即"rb"  "wb"
这样的话结果就没有异常
但是为什么呢?
如果以二进制读写的话,原本不是二进制的文件也能打开?并且写入的不是0101这样的二进制?
问题有点弱,请见谅。
2012-12-18 11:07
Dream_weaver
Rank: 1
等 级:新手上路
帖 子:37
专家分:2
注 册:2012-6-8
收藏
得分:0 
回复 2楼 rjsp
没有呀
我看到资料里,都是这样操作的 没有错误
并且feof也能用于文本文件的操作,不是吗?
2012-12-18 11:12
快速回复:文件操作 复制文件总是多个字
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012225 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved