C++ 文件问题
大家好!我写了一个文件,想把文件里的内容读到连表里,然后输出,文件里的内容为:
wangfutao
nan
23
24
luoyan
为什么总是出现内存错误啊。。请高手帮忙解决。
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
struct people //定义一个用来存储人信息的结构体
{
string name;//姓名
int age; //年龄
string sex; //性别
string phone;//电话
string address;//住址
people *next;
//people():next(NULL){}
};
struct list
{
people *first;
people *last;
int length;
list():first(NULL),last(NULL),length(0){}
};
void ListAll(list &adrlist)
{
string name;
string sex;
int age=0;
string phone;
string address;
people *p=adrlist.first;
if(p==NULL)
{
cout<<"You address list is empty!"<<endl;
system("pause");
//main_menu();
}
else
{
while(p!=NULL)
{
cout<<" name: "<<p->name<<endl;
cout<<" age: "<<p->age<<endl;
cout<<" sex: "<<p->sex<<endl;
cout<<" phone: "<<p->phone<<endl;
cout<<"address: "<<p->address<<endl;
p=p->next;
}
}
//system("pause");
//main_menu();
}
list &Readin(ifstream &in,list &adrlist)
{
string name;
string sex;
int age=0;
string phone;
string address;
in.open("people.txt");
if(!in)
{
cout<<"cannot open the file!"<<endl;
exit(0);
}
people *q=new people;
in>>q->name>>q->sex>>q->age>>q->phone>>q->address;
adrlist.first=q;
people *p=adrlist.first;
while(!in.eof())
{
q=new people;
in>>q->name>>q->sex>>q->age>>q->phone>>q->address;
p->next=q;
p=q;
q->next=NULL;
}
in.close();
return adrlist;
}
int main()
{
list adrlist;
ifstream in;
adrlist=Readin(in,adrlist);
ListAll(adrlist);
return 0;
}