####Vs code 编译运行输入汉字后输出0000
如题图为下,按照网上的通讯录写的一个练练手,但是在输出的时候就不知道为什么汉字都是显示的000,求个解决方法,谢谢
你得先确定你的 姓名和地址内容确实是正确的中文数据
输入地址后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");
}
}