有个结构链表,结构如
struct _aaa
{
   CString a;
   int b;
}aaa;
CArray<aaa*> m_array;如何把这样的链表保存到文件?如果可以保存,该如何加载?

解决方案 »

  1.   


    这个是链表吗?
    保存成INI文件如何?
    [section]
    key=word
      

  2.   

    把CString的内容写道文件,然后有一个字段表明长度,或者用个分隔符,方便自己读取...
    读的时候就对应的读出来
      

  3.   

    加载就是把CArray申明为一个类对象或者全局变量,在添加成员和获取成员的时候都从这个对象来进行考虑就好了
      

  4.   

    建议楼主保存成文本文件,这样处理起来简单,用CStdioFile类操作对于你这个结构,一个节点可以用两行文本存储,调用CStdioFile::WriteString()写入第一行  CString a;     // 这个直接写
    第二行  int b          // 这个需要先转换成字符串, CString 就可以依次遍历链表,保存就可以了读取时候也很简单,直接调用CStdioFile::ReadString()一个节点需要读两次,一直读到失败为止 第一次,存储为 CString a  ,直接赋值即可
    第二次,存储为 int b, 需要把读取的字符串 用atoi转换一下
      

  5.   

    int变量直接写,CString变量先写入长度,再写字符串内容。
      

  6.   

    其实如果不介意让aaa变成一个类并从CObject继承,用MFC的序列化功能最方便了。
    另外,用XML保存也是一个很好的选择。Windows有很多生成和读取XML的API。
      

  7.   

    在结构中包含类,是不方便的
    楼主这样的定义,会带来诸多不便:
    1、初始化
    2、序列化
    3、存取
    所以,合理的作法可能是:
    1、在结构中只用基本数据类型,比如:char *
    2、定义一个类,如10楼所说,"从CObject继承",实现序列化操作
      

  8.   

    CFile file
    file.write(yourStructData)
      

  9.   

    就用"<<"和" >>"操作符可以。fstream