struct 读写文件

kanguolaikanguolaik 2010-11-22 10:38:08
typedef struct _tagFilterBlackList
{ vector<CString> vstrVFW;
vector<CString> vstrACM;
}FILTERBLACKLIST,*PFILTERBLACKLIST;


PFILTERBLACKLIST pFilter = new FILTERBLACKLIST;
pFilter->vstrACM.push_back(TEXT("acm1"));
pFilter->vstrACM.push_back(TEXT("acm2"));
pFilter->vstrVFW.push_back(TEXT("vfw1"));
pFilter->vstrVFW.push_back(TEXT("vfw2"));

HANDLE hFile = CreateFile(BLACKLIST_FILENAME,GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
if(NULL == hFile)
return;

DWORD dwWrite = 0;
WriteFile(hFile,pFilter,sizeof(pFilter),&dwWrite,NULL);

if(pFilter) delete pFilter;


想以上面的结构体形式,把数据写入文件
然后在以该结构体形式读出。
上面的操作不对啊、


该怎么做??
...全文
80 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 thegreatone 的回复:]
你的结构体大小不固定,如果要想read函数读到一个固定的结构体中,你写的时候结构体需要固定,要不然会出现读的内容不是你所想要的。
[/Quote]


我这个VFW 和ACM的个数是不确定的 请问你有什么好想法
积木 2010-11-22
  • 打赏
  • 举报
回复
做成CSV格式读写就好。不用搞什么POD,这么简单的结构体搞复杂东西做甚。
thegreatone 2010-11-22
  • 打赏
  • 举报
回复
你的结构体大小不固定,如果要想read函数读到一个固定的结构体中,你写的时候结构体需要固定,要不然会出现读的内容不是你所想要的。
gules 2010-11-22
  • 打赏
  • 举报
回复
POD类型就是能按位(bitwise)拷贝而不会有问题的类型;
但是你定义的结构体(实际上就是一个类类型)只能按成员逐一拷贝(memberwise),想按C语言的方式是不可能的!
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 gules 的回复:]
可是你定义的是非POD类型啊!
[/Quote]

求详细解释POD
我就是想把数据以一定的结构写到文件中去 然后好读取出来

请问你有什么好办法??
gules 2010-11-22
  • 打赏
  • 举报
回复
可是你定义的是非POD类型啊!
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 gules 的回复:]
google “对象序列化”或“对象持久化”
[/Quote]

我想把它以结构体的形式,写到文件中去
gules 2010-11-22
  • 打赏
  • 举报
回复
google “对象序列化”或“对象持久化”

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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