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
![](https://profile-avatar.csdnimg.cn/92bfb0658a0d42ca8d255e0a3198c2c3_weixin_73609190.jpg!4)
请教一下各位这个问题的原因是什么
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- 快乐鹦鹉 2022-09-13 20:33关注
string phone=0;错误,你这等于是将 phone设置为空了。只需要string phone 就可以了。或者 string phone = "";
后面的 string i=0,也是一样
string是字符串,不是整数 ,不能初始化等于0的。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 3无用
悬赏问题
- ¥15 Stata链式中介效应代码修改
- ¥15 latex投稿显示click download
- ¥15 请问读取环境变量文件失败是什么原因?
- ¥15 在若依框架下实现人脸识别
- ¥15 添加组件无法加载页面,某块加载卡住
- ¥15 网络科学导论,网络控制
- ¥15 利用Sentinel-2和Landsat8做一个水库的长时序NDVI的对比,为什么Snetinel-2计算的结果最小值特别小,而Lansat8就很平均
- ¥15 metadata提取的PDF元数据,如何转换为一个Excel
- ¥15 关于arduino编程toCharArray()函数的使用
- ¥100 vc++混合CEF采用CLR方式编译报错