none
vector<CString>类型的序列化 RRS feed

  • 问题

  • 如题,这是个可变长度字符串类型的动态数组,这种格式应该如何序列化,请高手指点,我用的是vc2010
    2013年8月22日 0:18

答案

  • 你好,

    你的代码看上去序列化实现的思路是没有问题的,只是在代码中出现了小的失误。 “ for(int i=0;cont;i++)ar<<vv[i];” 这个for 循环没有了条件限制,循环变量 i 自然增加,最终导致下标越界。

    Best Regards,

    May


    <THE CONTENT IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, WHETHER EXPRESS OR IMPLIED>
    Thanks
    MSDN Community Support

    Please remember to "Mark as Answer" the responses that resolved your issue. It is a common way to recognize those who have helped you, and makes it easier for other visitors to find the resolution later.

    2013年8月23日 6:13

全部回复

  • 自己写 foreach ,逐个元素的序列化。

    2013年8月22日 1:42
  • 我可否把这个数组赋值给一个普通cstring、的数组然后序列化这个普通数组。如果我要这样做首先需要用变量来定义数组的维数,在vc++如何做?
    2013年8月22日 2:11
  • void Ctext1Doc::Serialize(CArchive& ar)
    {
    int cont;
    cont=vv.size();
    if (ar.IsStoring())
    {
    ar<<cont;
    for(int i=0;cont;i++)ar<<vv[i];
    // TODO: 在此添加存储代码
    }
    else
    {
    ar>>cont;
    // TODO: 在此添加加载代码
    }
    }

    这样的语句用来保存这个吧类型的每一个数据,但是编译通过,运行保存时候却发生错误

    experssion:vector subscrip out of range

    2013年8月22日 2:25
  • 你好,

    你的代码看上去序列化实现的思路是没有问题的,只是在代码中出现了小的失误。 “ for(int i=0;cont;i++)ar<<vv[i];” 这个for 循环没有了条件限制,循环变量 i 自然增加,最终导致下标越界。

    Best Regards,

    May


    <THE CONTENT IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, WHETHER EXPRESS OR IMPLIED>
    Thanks
    MSDN Community Support

    Please remember to "Mark as Answer" the responses that resolved your issue. It is a common way to recognize those who have helped you, and makes it easier for other visitors to find the resolution later.

    2013年8月23日 6:13