结构体的保存

ccnufeng 2011-05-03 03:54:56
如有下面一个结构体:
struct Msg
{
int lenth;
CString str;
};

CString strPathName;
CFile *pFile;
pFile->Open(strPathName,CFile::modeCreate|CFile::modeWrite);
pFile->Write(&Msg,sizeof(Msg));

这样写入可以否?
...全文
83 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
一名程序员 2011-05-05
  • 打赏
  • 举报
回复
你这种操作方式是对CString的浅拷贝,不行的。必须对CString对象进行深拷贝,才能保存CString里字符串里的内容!
微笑的鱼 2011-05-03
  • 打赏
  • 举报
回复
基本类型数据构成的结构体可以直接写入文件,如果像CString这种类的话不可以,可以试试用xml保存。
蒙飞鸿 2011-05-03
  • 打赏
  • 举报
回复
CArchive,对,好象应该是用这么个东西
ccnufeng 2011-05-03
  • 打赏
  • 举报
回复
序列化,这样么?
CFile *pFile = new CFile();
CArchive ar(pFile,CArchive::store);
ar << lenth;
ar << str;
ar.Close();
pFile->Close();
delete []pFile;
fandh 2011-05-03
  • 打赏
  • 举报
回复
不可以!
CFile *pFile;
pFile->Open(strPathName,CFile::modeCreate|CFile::modeWrite);
此处指针没有初始化!
其二,你这个直接写,写的是什么?地址空间不对呀!

如果想保存结构体,可以考虑用序列化!

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧