HANKER131523
2017-11-16 06:39
采纳率: 50%
浏览 1.4k
已采纳

c语言图片的的复制问题

最近想用c语言写一个复制图片的小程序,用fread和fwrite,代码如下(控制台程序):
#define BUFFER_SIZE 10*1024*1024
main()
{
FILE *out;
FILE *fp;
int length;
static char buffer[BUFFER_SIZE];

    fp = fopen("1.bmp", "rb");
    out = fopen("out.bmp", "wb")

    fseek(fp, 0, SEEK_END);
    length = ftell(fp);

    fread(buffer, 1, length, fp);

    rewind(out);
    fwrite(buffer, 1, length, out);

    fclose(out);
    fclose(fp);

}

程序运行后,out.bmp和1.bmp的大小一样,可是打不开,哪位大神帮忙看一下有什么问题吗

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • doggy_coder 2017-11-16 06:56
    已采纳

    fseek之后文件指针已经移动到文件末尾了,,你再fread的时候,还能读到什么,,fseek之后要重新把文件指针指向开头才对

    点赞 评论
  • doggy_coder 2017-11-16 07:00

    而且你的编程习惯不好,所有调用都不进行返回值判断,一次读取整个文件大小

    点赞 评论

相关推荐 更多相似问题