VScode运行C++程序输出出现问题

博客可能围绕VSCode作为集成开发环境(IDE)进行C++开发展开,涉及相关的开发操作、配置等信息技术内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用vscode编写了一个c++程序,首先显示菜单界面,用户输入数字选择操作,操作结束后,清屏输出结果,再次显示菜单界面,直到用户输入0退出程序,但是程序输出结果时总是在第二次显示菜单界面的时候,输出一半菜单界面就卡住了	
代码检查了好几遍没有什么问题,但是运行到一半就会卡到菜单中间,一直不动,请问这是什么原因呀?代码,输出图片全部附上。
#include<iostream>
#include<string>
#include <cstdlib>
using namespace std;
#define MAX 1000

//1、封装函数显示菜单界面
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;
}

//联系人结构体
struct Person
{
    string m_name;//姓名
    int m_sex;//性别1:男,2:女
    int m_age;//年龄
    string m_phone;//电话
    string m_addr;//住址
};

//通讯录结构体
struct Addressbooks
{
    //通讯录中保存的联系人数组
    struct Person personArray[MAX];
    //通讯录中当前记录联系人个数
    int m_size;
    /* data */
};

//添加联系人
void addPerson(Addressbooks *abs)
{
    //判断通讯录是否已满,如果满了就不在添加
    if(abs->m_size == MAX)
    {
        cout<<"通讯录已满,无法添加!"<<endl;
        return;
    }
    else
    {
        //添加具体联系人
        //姓名
        string name;
        cout<<"请输入姓名:"<<endl;
        cin>>name;
        abs->personArray[abs->m_size].m_name = name;
        cout<<"输入成功!"<<endl;

        //性别
        int sex = 0;
        cout<<"请输入性别:"<<endl;
        cout<<"1--男"<<endl;
        cout<<"2--女"<<endl;
        while(true)
        {
            //如果输入的是1或2则输入正确可以退出
            //如果输入有误,重新输入
            cin>>sex;
            if(sex==1||sex==2)
            {
                abs->personArray[abs->m_size].m_sex = sex;
                cout<<"输入成功!"<<endl;
                break;
            }
                cout<<"输入有误,重新输入!"<<endl;
        }
        
        //年龄
        cout<<"请输入年龄:"<<endl;
        int age = 0;
        while(true)
        {
            cin>>age;
            if(age<0||age>200)
            {
                cout<<"输入有误,重新输入!"<<endl;
            }
            else
            {
                abs->personArray[abs->m_size].m_age = age;
                cout<<"输入成功!"<<endl;
                break;
            }
            
        }

        //电话
        cout<<"请输入电话:"<<endl;
        string phone;
        cin>>phone;
        abs->personArray[abs->m_size].m_phone = phone;

        //住址
        cout<<"请输入住址:"<<endl;
        string address;
        cin>>address;
        abs->personArray[abs->m_size].m_addr = address;

        //更新通讯录人数
        abs->m_size++;

        cout<<"添加成功!"<<endl;

        system("pause");//请按任意键继续
        system("cls");//清屏操作
    }
}

//显示联系人
void showPerson(Addressbooks *abs)
{
    //判断通讯录中人数是否为0,如果为0,指示记录为空
    //如果不为0,显示记录的联系人信息
    if (abs->m_size == 0)
    {
        cout<<"当前记录为空!"<<endl;
    }
    else
    {
        for(int i = 0;i<abs->m_size;i++)
        {
            cout<<"姓名:"<<abs->personArray[i].m_name<<"\t";
            cout<<"性别:"<<(abs->personArray[i].m_sex == 1 ?"男":"女")<<"\t";
            cout<<"年龄:"<<abs->personArray[i].m_age<<"\t";
            cout<<"电话:"<<abs->personArray[i].m_phone<<"\t";
            cout<<"住址:"<<abs->personArray[i].m_addr<<endl;
        }
    }
    system("pause");
    system("cls");
}

int main()
{
    //创建通讯录结构体变量
    Addressbooks abs;
    //初始化通讯录中当前人员个数
    abs.m_size = 0;

    //创建用户选择输入的变量
    int select = 0;

    while(true)
    {
         //调用菜单
        showMenu();

        cin>>select;
        switch(select)
        {
            case 1://添加联系人
                addPerson(&abs);//地址传递,可以修饰实参
                break;
            case 2://显示联系人
                showPerson(&abs);
                break;
            case 3://删除联系人
                break;
            case 4://查找联系人
               break;
            case 5://修改联系人
                break;
            case 6://清空联系人
                break;
            case 0://退出通信录
                cout<<"欢迎下次使用"<<endl;
                system("pause");
                return 0;
                break;
            default:
                break;

        }
    }
   

    system("pause");
    return 0;
}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值