首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

资料读出来的结果和写入的结果不一样,请帮忙看一下

2013-07-01 
文件读出来的结果和写入的结果不一样,请帮忙看一下因为我要做一个图片拆分成4096字节后再发送的功能,现在

文件读出来的结果和写入的结果不一样,请帮忙看一下
因为我要做一个图片拆分成4096字节后再发送的功能,现在遇到的问题是原图片的数据和拷贝出来的数据不一致,不知道是什么原因,请高手帮忙看下,谢谢了



      int length;
      char * buffer;

      ifstream is;
      is.open("E:\\test.JPG", ios::binary);

      // get length of file:
      is.seekg (0, ios::end);
      length = is.tellg();
      is.seekg (0, ios::beg);  
      unsigned char *ch = new unsigned char[length];
      FILE *fp;
      fp = fopen("E:\\test.JPG", "rb");
      if (fp == NULL)
      {
         printf("file open failed");
      }
      fread(ch, length, 1, fp);
/////////////write file
      AnsiString tempfilename = "E:\\test0.JPG";
      FILE *stream;
     if ((stream = fopen(tempfilename.c_str(), "w+")) == NULL)
     {
        fprintf(stderr, "Cannot open output file.\n");
        return false;
     }
     fwrite(ch, length, 1, stream);
     fclose(stream);
     delete []ch;
//////////////write file
     system("pause");


[解决办法]
 fopen(tempfilename.c_str(), "w+")
改成用二进制方式打开
[解决办法]
if ((stream = fopen(tempfilename.c_str(), "w+b")) 

热点排行