如何在文件中保存结构数组,小弟我保存的读出时总是有乱码,怎吗回事啊

怎么在文件中保存结构数组,我保存的读出时总是有乱码,怎吗回事啊!!!!!!!!!
C/C++ code

struct STRUCT_TK{ char Tx[10000];       //内容
        int zn;// 
        char  img[1000];      //图片
        };
    FILE *fin1;
        fin1 = fopen( "tiku.dat", "wb" );
        if(fin1==NULL)   ShowMessage("错误");
        else
         {
           for(int i=0;i<100;i++)
        fwrite(&Te[i], sizeof(STRUCT_TK), 1, fin1);////Te是个STRUCT_TK数组
            }
         fclose(fin1);



读取的时候,读出的是乱码,,前几段没有乱码,后几段全是乱码 了
C/C++ code

  STRUCT_TK* TKx=new STRUCT_TK[100];
           FILE *fin1;
        fin1 = fopen( "tiku.dat", "r" );
        if(fin1==NULL)   ShowMessage("错误:2");
        else
           {
           for(int i=0;i<100;i++)
        fread(&TKx[i], sizeof(STRUCT_TK), 1, fin1);
          }






------解决方案--------------------
fopen( "tiku.dat", "rb" );//r改成rb