CArchive 对象可以循环读取文件吗?我的代码如下: //写入infor.txt
CFile file("infor.txt",CFile::modeCreate|CFile::modeWrite);
CArchive oar(&file, CArchive::store);
for(int i=0;i<100;i++)
for(int j=0;j<100;j++)
{
PicArchive m_Infor((WORD)j,(WORD)i);
oar<< &m_Infor;
}
                 oar.Close();
file.Close();
//读取infor.txt
CFile iFile("infor.txt", CFile::modeRead);  
CArchive iar(&iFile, CArchive::load);
PicArchive *m_Infor;[code=C/C++]
int row=0,col=0;
for(int i=0;i<10000;i++)
{
iar>>m_Infor;
row=m_Infor->i;
col=m_Infor->j; }[/code]
PicArchive 是一个可以进行序列化的类,它的对象有两个成员变量:i,j前提:我已经在“infor.txt”中写入了10000个对象我在循环读infor.txt时每次的i,j都为0。CArchive真的不可以这样循环读取文件吗?每次文件的指针都是从文件的开头开始吗?请大家帮忙,谢谢!

解决方案 »

  1.   

    oar<< &m_Infor; 你这个存储是内存地址,内存地址是不能存储的,每次都不一样的!只能存储数据!
    同样 iar>>m_Infor; 也一样会出问题的!PicArchive *m_Infor;没有申请任何内存空间就直接使用,肯定会出问题的!序列化序列的是数据,对内存地址的记录是没有意义的!
      

  2.   


    你好,能不能看看这个??
    http://topic.csdn.net/u/20100102/16/862c61ca-424e-4ef6-a795-c18c3824aae3.html