如何把C++中list中的元素写入文件!

来源:百度知道 编辑:UC知道 时间:2024/06/17 17:08:02
结构体定义如下:
typedef struct{
unsigned int PRI;
std::string dictName;
std::string idxName;
std::string ifoName;
std::string dzName;
std::string libName;
}starDictInfo;
/* 初始化结构体 */
starDictInfo dict1 = {PRI:3, dictName:"langdao", idxName:"langdao-ec-gb.idx",ifoName:"langdao-ec-gb.ifo",dzName:"langdao-ec-gb.dict.dz", libName:"libstar.so"};
starDictInfo dict2 = {PRI:4, dictName:"21shiji", idxName:"21shijishuangxiangcidian.idx",ifoName:"21shijishuangxiangcidian.ifo",dzName:"21shijishuangxiangcidian.dict.dz", libName:"libstar.so"};

typedef list<starDictInfo> DICTLIST;//定义链表
DICTLIST list;
list.push_front(dict1);
list.push_front(dict2);

DICTLIST::iterator plist;
for(plist = list.begin(); plist != list.end(); plist ++)
{
fwrite(plist,sizeof(starDictInfo),1,fp);/* 不对

可以试试 &(*plist)这样写,我用char试过可以.但好像涉及到string类,是不能直接写的吧,字符串在string类里应该只是一个指针成员而已,你直接fwrite写的话,写入的应该只是这个指针的值,而不是实际的字符串.