新手求助!!
出现的问题:在测试时中,添加联系人后,选择显示联系人,年龄为乱码,其余各项信息均未显示。
出现以下三个警告,并未报错
警告 C26495 未初始化变量 people::p_age。始终初始化成员变量(type.6)。
警告 C26495 未初始化变量 people::p_sex。始终初始化成员变量(type.6)。
警告 C6262 函数使用了堆栈的“92008”个字节: 超过了 /analyze:stacksize '16384'。 请考虑将某些数据移到堆中。
请问是什么原因?新手求教。
#include<iostream>
using namespace std;
#include<string>
#define MAX 1000
struct people
{
string p_name;
int p_sex;
int p_age;
string p_phonenumber;
string p_address;
};
struct Addressbooks
{
struct people list[MAX];//联系人(结构体)数组
int p_size=0;//联系人数量
};
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;
}
void AddPerson(Addressbooks* add)
{
if (add->p_size == MAX)
{
cout << "通讯录已满,无法添加!" << endl;
return;
}
else
{
//添加具体联系人
//姓名
cout << "请输入姓名:" << endl;
string name;
cin >> name;
add->list[add->p_size].p_name = name;
//性别
cout << "请输入性别:" << endl;
cout << "1、男 " << endl;
cout << "2、女" << endl;
int sex=0;
while (true)
{
cin >> sex;
if (sex == 1 || sex == 2)
{
add->list[add->p_size].p_sex = sex;
break;
}
cout << "您输入有误,请重新输入!" << endl;
}
//年龄
cout << "请输入年龄:" << endl;
int age=0;
cin >> age;
add->list[add->p_size].p_age = age;
//联系号码
cout << "请输入联系号码:" << endl;
string phone;
cin >> phone;
add->list[add->p_size].p_phonenumber = phone;
//家庭住址
cout << "请输入家庭住址:" << endl;
string address;
cin >> address;
add->list[add->p_size].p_address = address;
//更新通讯录人数
add->p_size++;
cout << "您已成功添加联系人 " << name << endl;
system("pause");//请按任意键继续
system("cls");//清屏操作
}
}
void ShowPerson(Addressbooks* add)
{
if (add->p_size == 0)//如果传入参数中的联系人个数为0
{
cout << "您的通讯录还未创建联系人" << endl;
}
else
{
for (int i = 0; i < add->p_size; i++)
{
cout << "姓名: " << add->list[add->p_size].p_name << "\t";
cout << "性别:" << (add->list[add->p_size].p_sex == 1 ? "男":"女" )<< "\t";
cout << "年龄:" << add->list[add->p_size].p_age << "\t";
cout << "联系电话:" << add->list[add->p_size].p_phonenumber << "\t";
cout << "家庭地址:" << add->list[add->p_size].p_address << endl;
}
}
system("pause");
system("cls");
}
int main()
{
Addressbooks add;
add.p_size = 0;
int choices = 0;
while (true)
{
ShowMenu();
cin >> choices;
switch (choices)
{
case 1://1、添加联系人
AddPerson(&add);
break;
case 2://2、显示联系人
ShowPerson(&add);
break;
case 3://3、删除联系人
break;
case 4://4、查找联系人
break;
case 5://5、修改联系人
break;
case 6://6、清空联系人
break;
case 0://0、退出通讯录
cout << "欢迎下次使用" << endl;
system("pause");
return 0;
break;
default:
break;
}
}
system("pause");
return 0;
}