正常我用1保存完数据按2显示应该会显示地址,但是真正运行出来为什么不显示
代码如下
#include <iostream>
#include <cstring>
#define max 1000
using namespace std;
//设计联系人的结构体
struct people {
string name;
int xb;
int age;
string phone;
string addr;
};
//设计通讯录的结构体
struct tx {
//通讯录中保存的联系人的数组
struct people stu[max];
//通讯录中当前记录人的个数
int gs;
};
//1、添加联系人
void addpeople(tx * abs)
{
//判断通讯录是否已满,如果满啦就不再添加
if (abs->gs == max)
{
cout << "通讯录已满,无法添加!" << endl;
return;
}
else
{
//添加具体联系人
//添加姓名
string name;
cout << "请输入姓名" << endl;
cin >> name;
abs->stu[abs->gs].name = name;
//性别
cout << "请输入性别" << endl;
cout << "1--男" << endl;
cout << "2--女" << endl;
int xb = 0;
//如果输入的是1或2可以退出循环,因为输入的是正确值
//如果输入有误,重新输入
while (true)
{
cin >> xb;
if (xb == 1 || xb == 2)
{
abs->stu[abs->gs].xb = xb;
break;
}
cout << "输入有误,请重新输入" << endl;
}
//年龄
cout << "请输入年龄" << endl;
int age = 0;
cin >> age;
abs->stu[abs->gs].age = age;
//电话
cout << "请输入联系电话" << endl;
string phone;
cin >> phone;
abs->stu[abs->gs].phone = phone;
//住址
cout << "请输入家庭住址" << endl;
string addr;
cin >> addr;
abs->stu[abs->gs].addr;
//更新通讯录人数
abs->gs++;
cout << "添加成功" << endl;
}
}
//显示联系人
void xianshi(tx * abs)
{
//判断通讯录中人数是否为0,如果为0,提示为空
//如果不为0,显示记录的联系人信息
if (abs->gs == 0)
{
cout << "当前记录为空" << endl;
}
else
{
for (int i = 0; i < abs->gs; i++)
{
cout << "姓名:" << abs->stu[i].name <<"\t";
cout << "性别:" <<( abs->stu[i].xb == 1 ? "男":"女" )<< "\t";
cout << "年龄:" << abs->stu[i].age << "\t";
cout << "电话:" << abs->stu[i].phone << "\t";
cout << "家庭住址:" << abs->stu[i].addr << endl;
}
}
system("pause");//按任意键继续
system("cls");//清屏
}
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;
}
int main()
{
//创建通讯录结构体变量
tx abs;
//初始化通讯录中当前人员个数
abs.gs = 0;
int select = 0;//创建用户选择输入的变量
while (true)
{
//菜单调用
showMenu();
cin >> select;
switch (select)
{
case 1:// 1、添加联系人
addpeople(&abs);//利用地址传递可以修改实参
break;
case 2:// 2、显示联系人
xianshi(&abs);
break;
case 3:// 3、删除联系人
break;
case 4:// 4、查找联系人
break;
case 5:// 5、修改联系人
break;
case 6:// 6、清空联系人
break;
case 0: //0、退出通讯录
cout << "欢迎下次使用";
return 0;
break;
default:
break;
}
}
}
请帮我看看吧,我真的是有点搞不懂了