asqwdw 2022-09-13 20:16 采纳率: 91.7%
浏览 20
已结题

请教一下各位这个问题的原因是什么

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
  • 写回答

2条回答 默认 最新

      报告相同问题?

      相关推荐 更多相似问题

      问题事件

      • 系统已结题 9月21日
      • 已采纳回答 9月13日
      • 创建了问题 9月13日

      悬赏问题

      • ¥15 如何关闭soui dummy wdn 进程
      • ¥20 含有jar文件的文件夹用tar -zcvf 命令压缩后要怎么还原回去?
      • ¥15 天宝TBC软件出现报错怎么解决
      • ¥15 micropython 从1开始切片报错
      • ¥15 请问该怎么做才能将文字说明和二维码一起作为png图片一起下载
      • ¥15 r语言 混频数据回归 midas_r
      • ¥15 人脸识recogizer.predict返回值id报错,KeyError,详情如下
      • ¥15 geowebcache部署失败
      • ¥20 关于adaboost+haar特征实现人脸检测过程的一些细节问题
      • ¥15 csv文件增加一列 为csv文件的名字