我定义了如下一个结构体
 struct ShipBasic
{
Cstring Name;
float T;
float K;
float OMIGA;
float EPS;
};sbContent
保存内容时如下:
if((mFile=fopen(strFileName,"w"))!=NULL)
{
fwrite(&sbContent,sizeof(struct ShipBasic),1,mFile);
fclose(mFile);
}
可当我用下面的语句读取文件数据时老是弹出带有“终止,重试,忽略”三个按钮的对话框
if((mFile=fopen("SteerParams/" +strSel+"/BasicParams.txt","r"))!=NULL)
{
fread(&sbContent,sizeof(struct ShipBasic),1,mFile);
//填写对话框上的各个控件
fclose(mFile);
}
当我把结构体中的Name删除后就可以了,这是为什么,要达到同样的目的该如何修改?

解决方案 »

  1.   

    将Name改为char 型的就可以了吧
    为了达到你的目的
    将控件变量做一下类型转换就可以呀
      

  2.   

    CString 实际上是一个指针,他值像一个字附书组,最好不要这么用。
    直接用char Name[16];就可以。使用CString是不行的。
      

  3.   

    同意: new1mm(引刀削愁) 的看法,还有,为了方便,你最好编两个函数,一个用做文件读出时,保存各个字符串的长度,另一个函数用做文件读入时,要读多少字节.定义一个数组来实现
      

  4.   

    CString不行的,你要换为CHAR*