void showMenu()
{
cout<<setfill('*')<<setw(28)<<" "<<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 name;
string sex;
int age;
string pNumber;
string add;
};
//通讯录结构体
struct addressbooks
{
struct person personArray[MAX];
int size;
} ;
//1.添加联系人
void addPerson(addressbooks*ads)
{
//判断通讯录是否已满,如果满了就不再添加
if (ads->size==MAX)
{cout<<"通讯录已满"<<endl;
return ;}
else
{
//添加具体联系人
//姓名
string name;
cout<<"请输入姓名:"<<endl;
cin>>name;
ads->personArray[ads->size].name=name;
//性别
int sex=0;
cout<<"请输入性别:"<<endl;
cout<<"1--男"<<endl;
cout<<"2--女"<<endl;
while(true){
//如果输入的是1或者2可以推出循环,若有误,重新输入
cin>>sex;
if(sex==1||sex==2){
ads->personArray[ads->size].sex=sex;
break;
}
cout<<"输入有误,请重新输入"<<endl;}
//年龄
cout<<"输入年龄:"<<endl;
int age=0;
cin>>age;
ads->personArray[ads->size].age=age;
//电话
cout<<"输入联系电话"<<endl;
string phone=0;
cin>>phone;
ads->personArray[ads->size].pNumber=phone;
//住址
cout<<"请输入家庭地址:"<<endl;
string i=0;
cin>>i;
ads->personArray[ads->size].add=i;
//更新通讯录人数
ads->size++;
cout<<"添加成功"<<endl;
system("pause");
system("cls");//清屏
};
} ;
int main(){
//创建通讯录结构体变量
addressbooks ads;
//初始化通讯录中当前人员个数
ads.size=0;
```为什么编译的时侯没有显示错误,运行的时候运行到输入电话号码的时候出错了呢
显示 terminate called after throwing an instance of'std::logic_error' what() : basic_string::_S_construct null not valid
请教一下各位这个问题的原因是什么
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- 快乐鹦鹉 2022-09-13 20:33关注
string phone=0;错误,你这等于是将 phone设置为空了。只需要string phone 就可以了。或者 string phone = "";
后面的 string i=0,也是一样
string是字符串,不是整数 ,不能初始化等于0的。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 3无用
悬赏问题
- ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
- ¥15 关于#Java#的问题,如何解决?
- ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
- ¥15 想问一下树莓派接上显示屏后出现如图所示画面,是什么问题导致的
- ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
- ¥15 cmd cl 0x000007b
- ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
- ¥500 火焰左右视图、视差(基于双目相机)
- ¥100 set_link_state
- ¥15 虚幻5 UE美术毛发渲染