求解决!vs code 汉字输出为000

####Vs code 编译运行输入汉字后输出0000

如题图为下,按照网上的通讯录写的一个练练手,但是在输出的时候就不知道为什么汉字都是显示的000,求个解决方法,谢谢

img

img

img

你得先确定你的 姓名和地址内容确实是正确的中文数据

输入地址后p->m_Size++ ,了导致姓名找不到为空

你代码里写的是cin
可是放的图里没有录入的这一段呀
仔细检查你存文件的时候里面到底存了个什么,打开文件看看文件里到底是什么,读写文件的代码又是什么


void AddPerson(struct Addressbooks *p)
{
    //添加人的函数
    if (p->m_Size == Max)
    {
        // 判断人员是否已满
        cout << "通讯录人员已满,无法添加新的联系人" << endl;
        return;
    }
    else
    {
        // 输入姓名
        string name;
        cout << "请输入所要添加联系人的姓名:" << endl;
        cin >> name;
        p->str[p->m_Size].m_Name = name;
        // 输入性别
        cout << "请输入联系人的性别" << endl;
        cout << "tips: 输入1为男性 输入2为女性" << endl;
        int sex = 0;
        // 创建循环判断输入性别是否错误
        while (true)
        {
            cin >> sex;
            if (sex == 1 || sex == 2)
            {
                p->str[p->m_Size].m_Sex = sex;
                break;
            }
            else
            {
                cout << "您的输入有误,请重新输入" << endl;
            }
        }
        // 输入年龄
        cout << "请输入联系人的年龄:" << endl;
        int age = 0;
        cin >> age;
        p->str[p->m_Size].m_Age = age;
        // 输入联系电话
        cout << "请输入联系人的电话号码:" << endl;
        string phone;
        cin >> phone;
        p->str[p->m_Size].m_Phone = phone;
        // 输入家庭住址
        cout << "请输入联系人的家庭住址:" << endl;
        string address;
        cin >> address;
        p->str[p->m_Size].m_Addr = address;
        p->m_Size++;
        cout << "添加成功!" << endl;
        // 输入完毕,更新人数
        system("pause");
        system("cls");
    }
}