跪求!!!!关于VC中使用vector类存入和读出文件的问题

fsagd 2010-09-05 01:18:44
最近在做一个基于VC6.0的有界面的图书管理系统,要把包含用户信息ID和password的类保存在vector容器里面,再将这个容器里面所有的内容写到文件中,然后再将文件中类的成员信息读出来,小弟谢了下面的代码,但是文件始终读不出来,百思不得其解,望哪位大哥帮帮小弟!!!万分感谢!
class people
{
public:
LPCSTR id;
LPCSTR password;
int num; //1表示管理员,2表示用户
};
定义了一个文件类:
typedef vector<people*> sy;//设置此类的全局容器
class wenjian:public vector<people*>
{
public:
wenjian(void);
BOOL loadfile();
void storefile();
void add(people* pl);
void findstrl(LPCSTR idd,int* flag);
void deletepeople(sy::iterator it);
~wenjian(void);
};
读文件操作:

BOOL wenjian::loadfile ()
{
ifstream fin;
fin.open("txt1.dat",ios_base::binary|ios_base::in);
people* p;
p=new people;
if(!(fin.read((char*)p,sizeof(p))))
{
delete p;
fin.close();
return 0;
}
push_back(p);
p=new people;
while(fin.read((char*)&p,sizeof(p)))
{
push_back(p);
p=new people;
}
delete(p);
fin.close();
return 1;
}
写文件操作:

void wenjian::storefile ()
{
ofstream fout;
fout.open("txt1.dat",ios_base::out|ios_base::binary);
sy::iterator it=this->begin();
while(it!=this->end())
{
fout.write((char*)it,sizeof(people));
it++;
}
fout.close();
}
...全文
166 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
fsagd 2010-09-05
  • 打赏
  • 举报
回复
回复七楼,我也想过用<<和>>这两个操作符,但是不知道为什么做VC界面的时候它们不被编译器识别
请问是不是没有加相应的头文件啊
libinfei8848 2010-09-05
  • 打赏
  • 举报
回复
指针容器做基类。。。
tyzqqq 2010-09-05
  • 打赏
  • 举报
回复
arong1234 2010-09-05
  • 打赏
  • 举报
回复
任何带指针的结构都不能直接写入文件,你需要串行化,其基本思想就是把对象转换成可以反转的字节流
http://www.vckbase.com/document/viewdoc/?id=918
fsagd 2010-09-05
  • 打赏
  • 举报
回复
回复四楼,请问这位大哥,应该怎么改啊,小弟万分感谢!!!
fsagd 2010-09-05
  • 打赏
  • 举报
回复
回复一楼,正因为进行了单步跟踪才知道是在读文件的过程中发生了错误,文件一点都没有读进去
npuhuxl 2010-09-05
  • 打赏
  • 举报
回复
class people
{
public:
LPCSTR id;
LPCSTR password;
//在你保存文件的代码中,只是把字符串的地址保存了,加载的时候当然不对了
int num; //1表示管理员,2表示用户
npuhuxl 2010-09-05
  • 打赏
  • 举报
回复
BOOL wenjian::loadfile ()
{
ifstream fin;
fin.open("txt1.dat",ios_base::binary|ios_base::in);
people* p;
p=new people;
if(!(fin.read((char*)p,sizeof(people))))
{
delete p;
fin.close();
return 0;
}
push_back(p);
p=new people;
while(fin.read((char*)&p,sizeof(people)))
{
push_back(p);
p=new people;
}
fsagd 2010-09-05
  • 打赏
  • 举报
回复
如果哪位大哥知道怎么在VC中使用vector类存入和读出文件,如果不介意,可以把原来写的代码发给我,或者直接粘贴,小弟不胜感激!!!!一个在此迷失的初学者,需要各位大哥大姐的帮助!!!
gamemagic 2010-09-05
  • 打赏
  • 举报
回复
单步跟踪调试一下

65,186

社区成员

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

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