void person::add(void) //增加通讯录项函数
{
person *p;
cout<<"输入要添加的联系人:"<<endl;
cout<<"姓名:";
cin>>p->name;
cout<<"性别:"; //这后面不执行了,直接press any key to continue
cin>>p->sex;
cout<<"地址:";
cin>>p->address;
cout<<"电话:";
cin>>p->phone;
cout<<"邮政编码:";
cin>>p->zip;
cout<<"email:";
cin>>p->email;
cout<<"qq:";
cin>>p->qq;
cout<<"类别:";
cin>>p->category;
cout<<"数据添加成功,按Enter键返回主菜单..."<<endl;
++count;
getchar();
}
int main()//主函数
{
person *p;
int choice;
do
{
Displaymenu();
cout<<"请输入功能选项(输入1-9):";
cin>>choice;
switch(choice)
{
case 1:
p->add();
break;
case 2:
p->delete_();
break;
case 3:
p->show();
break;
case 4:
p->search();
break;
case 5:
p->modify();
break;
case 6:
p->Read();
break;
case 7:
p->Write_to_file();
break;
case 8:
p->sort();
break;
case 9:
exit(0);//正常运行并退出程序
}
system("cls");
Displaymenu();
}while(1);/*while(1),1表示为真,所以表示永远循环下去*/
system("pause");/*至此功能选择模块结束*/
return 0;
}
这个指针要实例化,分配内存才能使用。
person *p;
改为
person *p = new person();
首先是person指针没有初始化,其次add函数里你又定义了一个指针p,和main里面的p不是一个阿