鱼C论坛

 找回密码
 立即注册
12
返回列表 发新帖
楼主: 147380124

[已解决]c++友元类成员变量问题

[复制链接]
 楼主| 发表于 2021-6-19 22:52:49 | 显示全部楼层
人造人 发表于 2021-6-19 22:47
先选 1 进行添加?
选了 1,然后呢?编号也选 1 ?
我要 你输入的每一步,直到出现错误

然后如果说在message类的第一行加一个cou<<w.name<<endl;输出的就是烫烫烫,但是在姓名查找函数里面添加cout<<w.name<<endl;输出的就是张三
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-6-19 23:05:45 | 显示全部楼层
147380124 发表于 2021-6-19 22:52
然后如果说在message类的第一行加一个cou

这个问题好像是解决了,下一个有问题的输入是?

  1. #include <iostream>
  2. #include <cstring>

  3. using namespace std;


  4. void menu()//定义菜单函数
  5. {
  6.     cout << endl;
  7.     cout << "---------------------------人事档案管理系统---------------------------" << endl << endl;
  8.     cout << "\t\t\t 1:添加职员具体信息" << endl;
  9.     cout << "\t\t\t 2:按姓名查找职员信息" << endl;
  10.     cout << "\t\t\t 3:按编号查找职员信息" << endl;
  11.     cout << "\t\t\t 4:按姓名删除职员信息" << endl;
  12.     cout << "\t\t\t 5:按编号删除职员信息" << endl;
  13.     cout << "\t\t\t 6:显示人事管理系统中所有职员信息" << endl;
  14.     cout << "\t\t\t 7:清空人事管理系统中所有职员信息" << endl;
  15.     cout << "\t\t\t 8:统计人事管理系统中的职员总数" << endl;
  16.     cout << "\t\t\t 0:退出人事档案管理系统" << endl;
  17.     cout << "**********************************************************************" << endl;
  18. }

  19. class Person {//普通人
  20. public:
  21.     char name[30];
  22.     char sex[20];
  23.     char age[20];


  24. };

  25. //职工职位
  26. class PersonPosition :virtual public Person {//Person为虚基类
  27. public:
  28.     char position[20];//职位
  29.     PersonPosition() {
  30.         //Null
  31.     }
  32.     ~PersonPosition() {
  33.         //Null
  34.     }
  35. };

  36. //操作时间
  37. class OperationTime :virtual public Person {//Person为虚基类
  38. public:
  39.     char engage_time[100];//聘用时间
  40.     char add_time[100];//记录时间
  41.     OperationTime() {
  42.         //Null
  43.     }
  44.     ~OperationTime() {
  45.         //Null
  46.     }
  47. };

  48. //职工基本信息
  49. class Worker :public PersonPosition, public OperationTime {//继承PersonPosition、OperationTime类,多重继承。
  50. private:
  51.     char num[20];//编号
  52.     char address[500];//地址
  53.     char tel[100];//手机号
  54.     char nation[30];//民族
  55.     char political_status[20];//政治面貌
  56.     char marital_status[20];//婚姻状况
  57.     char school[200];//毕业院校
  58.     char identity[500];//身份证号
  59.     char email[20];//邮箱

  60.     friend class message;//友元类message

  61.     Worker() {
  62.         //Null
  63.     }
  64.     ~Worker() {
  65.         //Null
  66.     }
  67.     friend class Staffoperation;//定义友元操作类

  68. };

  69. //操作函数
  70. class Staffoperation :public PersonPosition, public OperationTime {//多重继承
  71. private:
  72.     Worker w[101];//100为员工最多数量
  73.     int Num;//用于表示记录时员工的序号
  74.     int all;//用于表示系统含有多少名员工

  75. public:
  76.     Staffoperation() {
  77.         Num = 1;
  78.         all = 0;
  79.     }
  80.     virtual void show() {
  81.         //Null
  82.         //定义虚函数show,供message类调用
  83.     }

  84.     void add_person();//添加员工具体信息
  85.     void searchname();//按姓名查找
  86.     void searchnum();//按编号查找
  87.     void delname();//按姓名删除
  88.     void delnum();//按编号删除
  89.     void showall();//显示人事管理系统中所有员工信息
  90.     void delall();//清空人事管理系统中所有员工信息
  91.     void total();//统计人事管理系统中的员工总数

  92.     friend class message;//定义友元类

  93. };

  94. //message类用于重载运算符
  95. class message:public Staffoperation,public Worker {
  96. private:
  97.     char name_m[32];
  98.     char sex_m[22];
  99.     char age_m[22];
  100.     char num_m[22];//编号
  101.     char address_m[502];//地址
  102.     char tel_m[102];//手机号
  103.     char nation_m[32];//民族
  104.     char political_status_m[22];//政治面貌
  105.     char marital_status_m[22];//婚姻状况
  106.     char school_m[202];//毕业院校
  107.     char identity_m[502];//身份证号
  108.     char email_m[22];//邮箱
  109.     char position_m[22];//职位
  110.     char engage_time_m[102];//聘用时间
  111.     char add_time_m[102];//记录时间
  112. public:
  113.     message(int i) {
  114.         cout << w[i].name << endl;
  115.         /*
  116.         strcpy_s(name_m, strlen(w[i].name) + 1,w[i].name);
  117.         strcpy_s(sex_m, strlen(w[i].sex) + 1, w[i].sex);
  118.         strcpy_s(age_m, strlen(w[i].age) + 1, w[i].age);
  119.         strcpy_s(num_m, strlen(w[i].num) + 1, w[i].num);
  120.         strcpy_s(address_m, strlen(w[i].name) + 1, w[i].name);
  121.         strcpy_s(tel_m, strlen(w[i].tel) + 1, w[i].tel);
  122.         strcpy_s(nation_m, strlen(w[i].nation) + 1, w[i].nation);
  123.         strcpy_s(political_status_m, strlen(w[i].political_status) + 1, w[i].political_status);
  124.         strcpy_s(marital_status_m, strlen(w[i].marital_status) + 1, w[i].marital_status);
  125.         strcpy_s(school_m, strlen(w[i].school) + 1, w[i].school);
  126.         strcpy_s(identity_m, strlen(w[i].identity) + 1, w[i].identity);
  127.         strcpy_s(email_m, strlen(w[i].email) + 1, w[i].email);
  128.         strcpy_s(position_m, strlen(w[i].position) + 1, w[i].position);
  129.         strcpy_s(engage_time_m, strlen(w[i].engage_time) + 1, w[i].engage_time);
  130.         strcpy_s(add_time_m, strlen(w[i].add_time) + 1, w[i].add_time);
  131.         */
  132.         strcpy(name_m, w[i].name);




  133.         strcpy(name, w[i].name);




  134.         strcpy(sex_m, w[i].sex);
  135.         strcpy(age_m, w[i].age);
  136.         strcpy(num_m, w[i].num);
  137.         strcpy(address_m, w[i].name);
  138.         strcpy(tel_m, w[i].tel);
  139.         strcpy(nation_m, w[i].nation);
  140.         strcpy(political_status_m, w[i].political_status);
  141.         strcpy(marital_status_m, w[i].marital_status);
  142.         strcpy(school_m, w[i].school);
  143.         strcpy(identity_m, w[i].identity);
  144.         strcpy(email_m, w[i].email);
  145.         strcpy(position_m, w[i].position);
  146.         strcpy(engage_time_m, w[i].engage_time);
  147.         strcpy(add_time_m, w[i].add_time);
  148.     }
  149.     //拷贝构造函数
  150.     message(const message& me) {
  151.         /*
  152.         strcpy_s(name_m, strlen(me.name_m) + 1, me.name_m);
  153.         strcpy_s(sex_m, strlen(me.sex_m) + 1, me.sex_m);
  154.         strcpy_s(age_m, strlen(me.age_m) + 1, me.age_m);
  155.         strcpy_s(num_m, strlen(me.num_m) + 1, me.num_m);
  156.         strcpy_s(address_m, strlen(me.name_m) + 1, me.name_m);
  157.         strcpy_s(tel_m, strlen(me.tel_m) + 1, me.tel_m);
  158.         strcpy_s(nation_m, strlen(me.nation_m) + 1, me.nation_m);
  159.         strcpy_s(political_status_m, strlen(me.political_status_m) + 1, me.political_status_m);
  160.         strcpy_s(marital_status_m, strlen(me.marital_status_m) + 1, me.marital_status_m);
  161.         strcpy_s(school_m, strlen(me.school_m) + 1, me.school_m);
  162.         strcpy_s(identity_m, strlen(me.identity_m) + 1, me.identity_m);
  163.         strcpy_s(email_m, strlen(me.email_m) + 1, me.email_m);
  164.         strcpy_s(position_m, strlen(me.position_m) + 1, me.position_m);
  165.         strcpy_s(engage_time_m, strlen(me.engage_time_m) + 1, me.engage_time_m);
  166.         strcpy_s(add_time_m, strlen(me.add_time_m) + 1, me.add_time_m);
  167.         */
  168.         strcpy(name_m, me.name_m);
  169.         strcpy(sex_m, me.sex_m);
  170.         strcpy(age_m, me.age_m);
  171.         strcpy(num_m, me.num_m);
  172.         strcpy(address_m, me.name_m);
  173.         strcpy(tel_m, me.tel_m);
  174.         strcpy(nation_m, me.nation_m);
  175.         strcpy(political_status_m, me.political_status_m);
  176.         strcpy(marital_status_m, me.marital_status_m);
  177.         strcpy(school_m, me.school_m);
  178.         strcpy(identity_m, me.identity_m);
  179.         strcpy(email_m, me.email_m);
  180.         strcpy(position_m, me.position_m);
  181.         strcpy(engage_time_m, me.engage_time_m);
  182.         strcpy(add_time_m, me.add_time_m);
  183.     }
  184.     friend ostream& operator<<(ostream& out, message& m);//重载运算符<<
  185.     void show() {
  186.         cout << *this;
  187.     }
  188. };

  189. //重载运算符<<
  190. ostream& operator<<(ostream& out, message& m) {
  191.     out << " 编号:" << m.num_m << endl;
  192.     out << " 姓名:" << m.name_m << endl;
  193.     out << " 年龄:" << m.age_m << endl;
  194.     out << " 性别:" << m.sex_m << endl;
  195.     out << " 地址:" << m.address_m << endl;
  196.     out << " 手机号:" << m.tel_m << endl;
  197.     out << " 国家:" << m.nation_m << endl;
  198.     out << " 政治面貌:" << m.political_status_m << endl;
  199.     out << " 婚姻状况:" << m.marital_status_m << endl;
  200.     out << " 毕业院校:" << m.school_m << endl;
  201.     out << " 身份证号:" << m.identity_m << endl;
  202.     out << " 邮箱:" << m.email_m << endl;
  203.     out << " 聘用时间:" << m.engage_time_m << endl;
  204.     out << " 记录时间:" << m.add_time_m << endl;
  205.     return out;
  206. }

  207. //密码系统(如需使用管理系统,需要输入正确的密码,若连续三次密码错误,则系统推出)
  208. void password()
  209. {

  210.     int password;
  211.     int j = 1;
  212.     cout << "欲使用本系统,请输入本系统的密码:" << endl;
  213.     cin >> password;
  214.     while (password != 888 && j < 3)
  215.     {
  216.         try {//应用异常出来来验证密码
  217.             if (password != 888)
  218.                 throw - 1; //抛出int类型异常

  219.         }

  220.         catch (int e) {
  221.             cout << "您输入的密码有误,请再次输入: " << endl;
  222.             j++;
  223.             cin >> password;
  224.         }

  225.     }
  226.     if (password != 888 && j >= 3)
  227.     {
  228.         cout << "您连续三次输入密码有误,系统自动退出" << endl;
  229.         exit(0);
  230.     }
  231.     else {
  232.         cout << endl << "欢迎进入人事档案管理系统\n请根据系统功能列表选择相应的功能(请输入选项对应的数字) " << endl;
  233.     }
  234. }

  235. //添加员工具体信息
  236. void Staffoperation::add_person() {
  237.     string choice = "Y";
  238.     char num1[20];
  239.     while (choice == "Y" || choice == "y")
  240.     {
  241.         cout << "-----新建人事档案职员信息----" << endl;
  242.         cout << "请输入职员的的编号:(1 - 100) " << endl;
  243.         cin >> num1;
  244.         for (int x = 0; x <= all; x++)//判断是否有重复的编号
  245.         {
  246.             while (strcmp(w[x].num, num1) == 0)
  247.             {
  248.                 cout << "此职工编号已存在,请重新输入:" << endl;
  249.                 cout << "请输入职员的的编号:(1 - 100) " << endl;
  250.                 cin >> num1;
  251.                 x = 0;
  252.             }
  253.         }
  254.         //strcpy_s(w[Num].num, num1);
  255.         strcpy(w[Num].num, num1);
  256.         cout << "请输入职员姓名:" << endl;
  257.         cin >> w[Num].name;
  258.         //cout << "请输入性别:" << endl;
  259.         //cin >> w[Num].sex;
  260.         //while (strcmp(w[Num].sex,"男")!=0 && strcmp(w[Num].sex, "女") != 0)
  261.         //{
  262.         //    cout << "您输入的性别有误,请核对后再输入: " << endl;
  263.         //    cin >> w[Num].sex;
  264.         //}
  265.         //cout << "请输入年龄:" << endl;
  266.         //cin >> w[Num].age;
  267.         //cout << "请输入该职员的职位:(经理,管理员,员工) " << endl;
  268.         //cin >> w[Num].position;
  269.         //while ((string)w[Num].position != "经理" && (string)w[Num].position != "管理员" && (string)w[Num].position != "员工")
  270.         //{
  271.         //    cout << "您输入的职工职位有误,请核对后再输入: " << endl;
  272.         //    cin >> w[Num].position;
  273.         //}
  274.         //cout << "请输入该职员的家庭地址: " << endl;
  275.         //cin >> w[Num].address;
  276.         //cout << "请输入该职员的民族:" << endl;
  277.         //cin >> w[Num].nation;
  278.         //cout << "请输入职员的政治面貌:(群众,团员,党员)" << endl;
  279.         //cin >> w[Num].political_status;
  280.         //while ((string)w[Num].political_status != "群众" && (string)w[Num].political_status != "团员" && (string)w[Num].political_status != "党员")
  281.         //{
  282.         //    cout << "您输入的职工政治面貌有误,请核对后再输入: " << endl;
  283.         //    cin >> w[Num].political_status;
  284.         //}
  285.         //cout << "请输入职员的婚姻状况(未婚,已婚)" << endl;
  286.         //cin >> w[Num].marital_status;
  287.         //while ((string)w[Num].marital_status != "未婚" && (string)w[Num].marital_status != "已婚")
  288.         //{
  289.         //    cout << "您输入的职工的婚姻状况有误,请核对后再输入: " << endl;
  290.         //    cin >> w[Num].marital_status;
  291.         //}
  292.         //cout << "请输入职员的毕业学校: " << endl;
  293.         //cin >> w[Num].school;
  294.         //cout << "请输入职员的身份证号:" << endl;
  295.         //cin >> w[Num].identity;
  296.         //cout << "请输入职员的手机号:" << endl;
  297.         //cin >> w[Num].tel;
  298.         //cout << "请输入职员的邮箱: " << endl;
  299.         //cin >> w[Num].email;
  300.         //cout << "请输人职员的聘用时间:" << endl;
  301.         //cin >> w[Num].engage_time;
  302.         //cout << "请输入此次记录的添加时间:" << endl;
  303.         //cin >> w[Num].add_time;
  304.         cout << "信息添加成功!" << endl;
  305.         cout << "您还想继续添加吗?( y/n) " << endl;
  306.         cin >> choice;
  307.         while (choice != "Y" && choice != "y" && choice != "N" && choice != "n")
  308.         {
  309.             cout << "请按要求键入(y/n) " << endl;
  310.             cin >> choice;
  311.         }
  312.         if (choice == "N" || choice == "n")
  313.         {
  314.             Num++;
  315.             all++;
  316.             break;
  317.         }
  318.         Num++;
  319.         all++;
  320.     }
  321. }

  322. //按姓名查找
  323. void Staffoperation::searchname() {
  324.     if (all == 0) {
  325.         cout << "目前还没有员工计入系统,即将返回主菜单....." << endl;
  326.         menu();
  327.     }
  328.     else {
  329.         char name1[30];
  330.         int flag = 0;//查询成功标志
  331.         cout << "请输入你想要查询的姓名:" << endl;
  332.         cin >> name1;
  333.         for (int i = 0; i < 100; i++) {
  334.             if (strcmp(name1, w[i].name) == 0) {
  335.                 cout << "查询成功!该员工的信息如下: " << endl;
  336.                 int l = i;
  337.                 message A(l);
  338.                 //cout << A.name << endl;
  339.                 cout << w[i].name << endl;
  340.                 //message B(A);//调用拷贝构造函数
  341.                 //B.show();
  342.                 flag = 1;
  343.                 break;
  344.             }
  345.         }
  346.         if (flag == 0) {
  347.             cout << "查询失败!系统中没有此人信息!即将返回主菜单....." << endl;
  348.         }
  349.     }
  350. }

  351. //按编号查找
  352. void Staffoperation::searchnum() {
  353.     if (all == 0) {
  354.         cout << "目前还没有员工计入系统,即将返回主菜单....." << endl;
  355.         menu();
  356.     }
  357.     else {
  358.         char num1[20];
  359.         int flag = 0;//查询成功标志
  360.         cout << "请输入你想要查询的编号:" << endl;
  361.         cin >> num1;
  362.         for (int i = 0; i < 100; i++) {
  363.             if (strcmp(w[i].num, num1) == 0) {
  364.                 cout << "查询成功!该员工的信息如下: " << endl;
  365.                 message A(i);
  366.                 //message B(A);//调用拷贝构造函数
  367.                 /*               B.show();*/
  368.                 flag = 1;
  369.                 break;
  370.             }
  371.         }
  372.         if (flag == 0) {
  373.             cout << "查询失败!系统中没有此人信息!即将返回主菜单....." << endl;
  374.         }
  375.     }
  376. }

  377. //按姓名删除
  378. void Staffoperation::delname() {
  379.     if (all == 0) {
  380.         cout << "目前还没有员工计入系统!" << endl;
  381.     }
  382.     char name2[30];
  383.     cout << "请输入你想要删除的员工姓名:" << endl;
  384.     cin >> name2;
  385.     int flag = 0;//删除标志
  386.     for (int i = 0; i < 100; i++) {
  387.         if (strcmp(name2, w[i].name) == 0) {
  388.             cout << "你想要删除的员工的信息如下: " << endl;
  389.             message A(i);
  390.             //message B(A);//调用拷贝构造函数
  391.             //B.show();
  392.             flag = 1;
  393.             break;
  394.         }
  395.     }
  396.     if (flag == 0) {
  397.         cout << "系统中没有此人信息!" << endl;
  398.     }
  399.     cout << "确认删除请输入Y,返回主菜单请输入N " << endl;
  400.     string p;
  401.     int j = 0;
  402.     cin >> p;
  403.     while (1)
  404.     {
  405.         if (p == "y" || p == "Y")
  406.         {
  407.             for (int i = 0; i < 100; i++) {
  408.                 if (strcmp(name2, w[i].name) == 0) {
  409.                     j = i;
  410.                 }
  411.             }
  412.             for (; j <= 99; j++) {
  413.                 w[j] = w[j + 1];
  414.             }
  415.             all--;
  416.             cout << "员工信息已删除!" << endl;
  417.             break;
  418.         }
  419.         else if (p == "n" || p == "N")
  420.         {
  421.             menu();
  422.             break;
  423.         }
  424.         else
  425.         {
  426.             cout << "输入有误,请重新输入:";
  427.             cin >> p;
  428.         }
  429.     }

  430. }

  431. //按编号删除
  432. void Staffoperation::delnum() {
  433.     if (all == 0) {
  434.         cout << "目前还没有员工计入系统!." << endl;
  435.     }
  436.     char num2[20];
  437.     cout << "请输入你想要删除的员工编号:" << endl;
  438.     cin >> num2;
  439.     int flag = 0;//删除标志
  440.     for (int i = 0; i < 100; i++) {
  441.         if (strcmp(w[i].num, num2) == 0) {
  442.             cout << "你想要删除的员工的信息如下: " << endl;
  443.             message A(i);
  444.             //message B(A);//调用拷贝构造函数
  445.             //B.show();
  446.             flag = 1;
  447.             break;
  448.         }
  449.     }
  450.     if (flag == 0) {
  451.         cout << "系统中没有此人信息!" << endl;
  452.     }
  453.     cout << "确认删除请输入Y,返回主菜单请输入N " << endl;
  454.     string p;
  455.     int j;
  456.     cin >> p;
  457.     while (1)
  458.     {
  459.         if (p == "y" || p == "Y")
  460.         {
  461.             for (int i = 0; i < 100; i++) {
  462.                 if (strcmp(w[i].num, num2) == 0) {
  463.                     j = i;
  464.                 }
  465.             }
  466.             for (; j <= 99; j++) {
  467.                 w[j] = w[j + 1];
  468.             }
  469.             all--;
  470.             cout << "员工信息已删除!" << endl;
  471.             break;
  472.         }
  473.         else if (p == "n" || p == "N")
  474.         {
  475.             menu();
  476.             break;
  477.         }
  478.         else
  479.         {
  480.             cout << "输入有误,请重新输入:";
  481.             cin >> p;
  482.         }
  483.     }

  484. }

  485. //显示人事管理系统中所有员工信息
  486. void Staffoperation::showall() {
  487.     if (all == 0) {
  488.         cout << "信息库为空,请添加职员!" << endl;
  489.         menu();
  490.     }
  491.     else {
  492.         cout << "所有员工的信息如下: " << endl;
  493.         for (int i = 1; i <= all; i++) {
  494.             message A(i);
  495.             //message B(A);//调用拷贝构造函数
  496.             //B.show();
  497.         }
  498.         ///////////////////////////////////////////
  499.     }
  500. }

  501. //清空人事管理系统中所有员工信息
  502. void Staffoperation::delall() {
  503.     for (int x = 1; x <= all; x++) {
  504.         w[x] = w[0];
  505.     }
  506.     all = 0;
  507.     Num = 1;
  508.     cout << "数据已清空!" << endl;
  509. }

  510. //统计人事管理系统中的员工总数
  511. void Staffoperation::total() {
  512.     cout << "系统中一共有:" << all << "名职工的信息。" << endl;
  513. }

  514. //定义控制函数
  515. void manage()
  516. {
  517.     Staffoperation per;
  518.     int choice, k = 1;
  519.     menu();
  520.     cout << "请根据系统功能列表选择相应的功能(请输入选项对应的数字)" << endl;
  521.     //password();
  522.     while (k)
  523.     {
  524.         cin >> choice;
  525.         switch (choice)
  526.         {
  527.             case 1:
  528.                 per.add_person();//调用增加人事档案中职员信息函数
  529.                 break;
  530.             case 2:
  531.                 per.searchname();//调用按姓名查找职工信息函数
  532.                 break;
  533.             case 3:
  534.                 per.searchnum();//调用按编号查找职工信息函数
  535.                 break;
  536.             case 4:
  537.                 per.delname();//调用按姓名删除职工信息函数
  538.                 break;
  539.             case 5:
  540.                 per.delnum();//调用按编号删除职工信息函数
  541.                 break;
  542.             case 6:
  543.                 per.showall();//调用显示人事档案管理系统中所有职员信息的函数
  544.                 break;
  545.             case 7:
  546.                 per.delall();//调用清空人事档案管理系统中所有数据的函数
  547.                 break;
  548.             case 8:
  549.                 per.total();//调用输出人事档案管理系统中职员数的函数
  550.                 break;
  551.             case 0:
  552.                 cout << endl << "即将退出人事档案管理系统,再见!" << endl << endl;
  553.                 k = 0;
  554.                 break;
  555.             default:
  556.                 cout << "您输入的选项有错,请重新选择! ";
  557.         }
  558.         if (k != 0)
  559.         {
  560.             menu();
  561.             cout << "请根据系统功能列表选择相应的功能(请输入选项对应的数字)" << endl;
  562.         }
  563.     }
  564. }

  565. int main()
  566. {
  567.     manage();

  568.     return 0;
  569. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-6-19 23:20:22 | 显示全部楼层
人造人 发表于 2021-6-19 23:05
这个问题好像是解决了,下一个有问题的输入是?

他这个vs就很奇怪,他不让我用strcpy
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-6-19 23:20:54 | 显示全部楼层
147380124 发表于 2021-6-19 23:20
他这个vs就很奇怪,他不让我用strcpy

你怎么知道不让用?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-6-19 23:22:44 | 显示全部楼层
人造人 发表于 2021-6-19 23:20
你怎么知道不让用?

我用你这个代码,他下面就报错,说strcpy不安全,要改为strcpy_s
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-6-19 23:23:38 | 显示全部楼层
147380124 发表于 2021-6-19 23:22
我用你这个代码,他下面就报错,说strcpy不安全,要改为strcpy_s

我看不到报错信息呀,你应该让我看到你看到的东西
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-6-19 23:25:45 | 显示全部楼层
人造人 发表于 2021-6-19 23:23
我看不到报错信息呀,你应该让我看到你看到的东西

QQ截图20210619232458.png 大佬你看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-6-19 23:28:20 | 显示全部楼层

看不懂英文没关系,随便拿个翻译软件翻译一下
1.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-6-19 23:29:19 | 显示全部楼层
在文件的最前面添加这个

  1. #define _CRT_SECURE_NO_WARNINGS
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-6-19 23:29:36 | 显示全部楼层
人造人 发表于 2021-6-19 23:28
看不懂英文没关系,随便拿个翻译软件翻译一下

我加入了这个,然后就出现了异常 QQ截图20210619232842.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-6-19 23:30:53 | 显示全部楼层
147380124 发表于 2021-6-19 23:29
我加入了这个,然后就出现了异常

你输入了什么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-6-19 23:39:02 | 显示全部楼层

就是和刚刚一样的输入,查询就报错了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-6-19 23:40:05 | 显示全部楼层

就是选择1添加,编号1,姓名张三,然后n退出,选2按姓名查询,再输入张三,然后就异常了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-6-19 23:43:09 | 显示全部楼层
147380124 发表于 2021-6-19 23:29
我加入了这个,然后就出现了异常

这是下一个问题了吧?我发给你的代码没有这一行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-6-19 23:44:19 | 显示全部楼层
好吧,看错位置了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-6-19 23:45:48 | 显示全部楼层
人造人 发表于 2021-6-19 23:43
这是下一个问题了吧?我发给你的代码没有这一行

1.png
就是在按姓名查找这里,没关系大佬,这么晚了,大佬你早点休息,我明天再研究研究,劳烦大佬了! 非常感谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-6-19 23:50:16 | 显示全部楼层
人造人 发表于 2021-6-19 23:44
好吧,看错位置了

我感觉最主要的问题就是在message里面输出是烫烫烫,在姓名查找里面不是,才导致了message里面数组越界,但我网上方法试遍了都没用
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-6-19 23:51:59 | 显示全部楼层
147380124 发表于 2021-6-19 23:50
我感觉最主要的问题就是在message里面输出是烫烫烫,在姓名查找里面不是,才导致了message里面数组越界, ...

这我就没办法了,我这边 dev++ 和 archlinux 的 gcc 都没问题
估计是你的vs问题了,你可以试试 dev++
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-6-19 23:52:29 | 显示全部楼层
147380124 发表于 2021-6-19 23:50
我感觉最主要的问题就是在message里面输出是烫烫烫,在姓名查找里面不是,才导致了message里面数组越界, ...

你确定是我发给你的这个代码?你直接复制的这个代码?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-6-19 23:53:24 | 显示全部楼层
人造人 发表于 2021-6-19 23:52
你确定是我发给你的这个代码?你直接复制的这个代码?

对呀,没关系大佬,明天我再弄弄,你早点休息吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-27 01:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表