我在学习c++的过程中尝试创建一个通讯录,在我输完年龄之后出现以后异常,程序无法进行:
#include
#include
#define MAX 1000//(注意不要用“;”,会报错)
using namespace std;
//1.界面
void showMenu()
{
cout << "************************" << endl;
cout << "***** 1.添加联系人 *****" << endl;
cout << "***** 2.显示联系人 *****" << endl;
cout << "***** 3.删除联系人 *****" << endl;
cout << "***** 4.查找联系人 *****" << endl;
cout << "***** 5.修改联系人 *****" << endl;
cout << "***** 6.清空联系人 *****" << endl;
cout << "***** 0.退出通讯录 *****" << endl;
cout << "************************" << endl;
}
struct Person
{
string m_name;
int m_sex;
int m_age;
string m_phone;
string m_addr;
};
struct addressbooks
{
struct Person personarray[MAX];
int m_Size;
};
//1.添加联系人函数
void addPerson(addressbooks* abs)
{
//先判断通讯录是否满了
if (abs->m_Size == MAX)
{
cout << "通讯录已经满了,无法添加!" << endl;
return;
}
else
{
//name
string name;
cout << "请输入一个姓名:" << endl;
//cin>> abs->personarray[abs->m_Size].m_name;
cin >> name;
abs->personarray[abs->m_Size].m_name = name;
//sex
cout << "请输入一个性别:" << endl;
cout << "1.男" << endl;
cout << "2.女" << endl;
int sex = 0;
while (true)
{
cin >> sex;
if (sex == 1 || sex == 2)//直到你输对为止
{
abs->personarray[abs->m_Size].m_sex = sex;
break;
}
cout << "输入有误,请重新输入" << endl;
}
//age
cout << "请输入年龄" << endl;
int age = 0;
cin >> age;
abs->personarray[abs->m_Size].m_age = age;
//phone
cout << "请输入电话号码" << endl;
string phone = 0;
cin >> phone;
abs->personarray[abs->m_Size].m_phone = phone;
//address
cout << "请输入家庭住址" << endl;
string address = 0;
cin >> address;
abs->personarray[abs->m_Size].m_addr = address;
//更新人数
abs->m_Size++;
cout << "添加成功!" << endl;
}
}
int main()
{
//创建通讯录结构体变量
addressbooks abs;
//初始化通讯录中当前人员个数
abs.m_Size = 0;
int select = 0;//用户输入
while (true)
{
//菜单调用
showMenu();
cin >> select;
switch (select)
{
case 1://添加联系人
addPerson(&abs);//要注意用地址传递,值传递不改实参。
break;
case 2://显示联系人
break;
case 3://删除联系人
break;
case 4://查找联系人
break;
case 5://修改联系人
break;
case 6://清空联系人
break;
case 0://退出通讯录
cout << "欢迎下次使用" << endl;
system("pause");
return 0;
break;
default:
break;
}
}
system("pause");
return 0;
}
目前还没写完,只是做一个当前添加联系人的验证,不知道为什么会出现这个异常,各位帮忙看看,感谢万分!
是指针的问题。我把指针初始化指向0了,我解决了。
希望这篇文章能够帮助到您,https://blog.csdn.net/qq_45410446/article/details/126531376