你写入的是按PlaneNode大小整块写的,然后按原大小一样读出来就是了,

解决方案 »

  1.   

    CFile LoadPInfo;
    if(!LoadPInfo.Open("Plane_Info.dat", CFile::modeRead | CFile::typeBinary))
    {
    MessageBox("打开文件失败!", "错误!", MB_OK);
    exit(0);
    }
    while(LoadPInfo.GetPosition() != LoadPInfo.GetLength())
    {
    PTemp=new PlaneNode;
    PTemp->Next=NULL;
    LoadPInfo.Read(PTemp, sizeof(PlaneNode));                           
    PlaneTile->Next=PTemp;
    PlaneTile=PTemp;
    PTemp++;
    }

    LoadPInfo.Close();
    这是我用来读文件的代码,但读出来后,用MessageBox显示出的是乱码啊???
      

  2.   

    写文件时,用WideCharToMultiByte转换成多字节的
    读后,再转换成宽字符的
      

  3.   

    void CStringToBYTE(CString str, BYTE *pStr)
    {
    char *pTemp = NULL; USES_CONVERSION;  
    pTemp=W2A(str);//转换
    memcpy(pStr, pTemp, str.GetLength()+1);
    }//
      

  4.   

    你写入文件的是二进制数据,如果想用字符串的形式显示,写的时候不要指定CFile::typeBinary就可以了