VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 3959|回复: 5

[原创] 程序退出的时候崩溃不知为啥

[复制链接]
79_avatar_middle
最佳答案
0 
在线会员 发表于 2022-7-24 17:14:00 | 显示全部楼层 |阅读模式
这是一个通讯录程序,我加了些存入文件的代码,退出的时候崩溃了,请大家看看为啥?
#include "StdAfx.h"
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
#define  MAX  1000

/**
实现的功能
* 添加联系人:向通讯录中添加新人,信息包括(姓名、性别、年龄、联系电话、家庭住址)最多记录1000人
* 显示联系人:显示通讯录中所有联系人信息
* 删除联系人:按照姓名进行删除指定联系人
* 查找联系人:按照姓名查看指定联系人信息
* 修改联系人:按照姓名重新修改指定联系人
* 清空联系人:清空通讯录中所有信息
* 退出通讯录:退出当前使用的通讯录  **/

//1---- -设计联系人的结构体
struct Person
{
        //姓名
        string m_Name;
        //性别
        int m_Sex;
        //年龄
        int m_Age;
        //电话
        string m_Phone;
        //住址
        string m_Addr;
};
//2----------设计通讯录的结构体
struct Addressbooks
{
        //通讯录中保存的联系人数组
        struct Person personArray[MAX];
        //通讯录中当前联系人个数
        int m_Size;
};

//3------添加联系人
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;
                cout << "1-----男" << endl;
                cout << "2-----女:" << endl;
                int sex = 0;

                while (true)
                {
                        cin >> sex;
                        if (sex == 1 || sex == 2)
                        {
                                abs->personArray[abs->m_Size].m_Sex = sex;
                                break;
                        }
                        cout << "输入有误,请重新输入" << endl;
                }

                //年龄
                cout << "请输入年龄:" << endl;
                int age = 0;
                cin >> age;
                abs->personArray[abs->m_Size].m_Age = age;
                //电话
                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");//清空屏幕
        }
}

//4---- -显示所有联系人
void showPerson(Addressbooks *abs)
{
        //判断通讯录中人数是否为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_Age << "\t";
                        //性别
                        cout << "性别" << (abs->personArray[i].m_Sex == 1 ? "男" : "女") << "\t";
                        //电话
                        cout << "电话" << abs->personArray[i].m_Phone << "\t";
                        //住址
                        cout << "住址" << abs->personArray[i].m_Addr << endl;
                }
        }
        system("pause");
        system("CLS");
}

//5------检测联系人是否存在,如果存在,返回联系人所在的数组中的具体位置,不存在返回-1
int isExist(Addressbooks * abs, string name)
{
        for (int i = 0; i < abs->m_Size; i++)
        {
                //找到用户输入的姓名了
                if (abs->personArray[i].m_Name == name)
                {
                        return i;
                }
        }
        return -1; //如果遍历结束都没有找到,返回-1
}

//6------ -删除指定联系人
void deletePerson(Addressbooks * abs)
{
        cout << "请输入你要删除的联系人" << endl;
        string name;
        cin >> name;
        //ret==-1未查到
        //ret!=1查到了
        int ret = isExist(abs, name);
        if (ret != -1)
        {
                for (int i = ret; i < abs->m_Size; i++)
                {
                        abs->personArray[i] = abs->personArray[i + 1];
                }
                abs->m_Size--; //更新通讯录的人员数
        }
        else
        {
                cout << "查无此人" << endl;
        }
}

//7--------查找指定联系人信息
void findPerson(Addressbooks * abs)
{
        cout << "请输入你要查找的联系人" << endl;
        string name;
        cin >> name;
        //判断指定的联系人是否在通讯录中
        int ret = isExist(abs, name);
        if (ret != -1)
        {
                //姓名
                cout << "姓名" << abs->personArray[ret].m_Name << "\t";
                //性别
                cout << "性别" << abs->personArray[ret].m_Sex << "\t";
                //年龄
                cout << "年龄" << abs->personArray[ret].m_Age << "\t";
                //电话
                cout << "电话" << abs->personArray[ret].m_Phone << "\t";
                //住址
                cout << "住址" << abs->personArray[ret].m_Addr << "\t";
        }
        else
        {
                cout << "查无此人" << endl;
        }
        system("pause");
        system("CLS");
}

//8------------修改指定联系人信息
void modifyPerson(Addressbooks * abs)
{
        cout << "请输入你要修改的联系人" << endl;
        string name;
        cin >> name;
        int ret = isExist(abs, name);
        if (ret != -1)
        {
                //姓名
                string  name;
                cout << "请输入姓名" << endl;
                cin >> name;
                abs->personArray[ret].m_Name = name;
                //性别
                cout << "请输入性别" << endl;
                cout << "1---男" << endl;
                cout << "2---女" << endl;
                int sex = 0;

                while (true)
                {
                        cin >> sex;
                        if (sex == 1 || sex == 2)
                        {
                                abs->personArray[ret].m_Sex = sex;
                                break;
                        }
                        cout << "输入有误,请重新输入" << endl;
                }
                //年龄
                cout << "请输入年龄" << endl;
                int age = 0;
                cin >> age;
                abs->personArray[ret].m_Age = age;
                //电话
                cout << "请输入电话" << endl;
                string phone;
                cin >> phone;
                abs->personArray[ret].m_Phone = phone;
                //住址
                cout << "请输入住址" << endl;
                string address;
                cin >> address;
                abs->personArray[ret].m_Addr = address;
                cout << "修改成功" << endl;
        }
        else
        {
                cout << "查无此人" << endl;
        }
        system("pause");
        system("CLS");
}

//9----------------清空所有联系人
void cleanPerson(Addressbooks *abs)
{
        abs->m_Size = 0;
        cout << "通讯录已清空" << endl;
        system("pause");
        system("CLS");
}

//10------------
void showMoun()
{
        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;
}

int main()
{
        //创建通讯录结构体变量
        Addressbooks abs;
       
        ifstream ifa;
        ifa.open("d:\\通讯录.data",ios::in|ios::binary);
        if(ifa.is_open())      //如果打开文件成功查看是否是空文件
        {
      ifa.seekg(0,ios::end);//把文件指针指到文件末尾;
          streampos ps=ifa.tellg();//用tellg函数返回一个值,这个值存放在streampos类的ps对象里;
          ifa.seekg(0,0);          //文件指针重新返回首部
       
          if (ps)         //如果长度不是零
          {
         ifa.read((char *)&abs,sizeof(abs));//把数据读入ifa;
             ifa.close();                        //关闭文件;
          }
        }
        else//否则认为是首次
       
   
        abs.m_Size = 0;//初始化通讯录中当前人员个数
       
        int select = 0; //初始化用户选择输入的变量
        ofstream ofa;   //定义一个用于输出的文件对象;
        while (true)
        {
                showMoun();  //调用菜单
                cin >> select;
                switch (select)
                {
                case 1:  //1.添加联系人
                        addPerson(&abs);
                        break;
                case 2:   //2.显示联系人
                        showPerson(&abs);
                        break;
                case 3:   //3.删除联系人
                        deletePerson(&abs);
                        break;
                case 4:   //4.查找联系人
                        findPerson(&abs);
                        break;
                case 5:   //5.修改联系人
                        modifyPerson(&abs);
                        break;
                case 6:   //6.清空通讯录
                        cleanPerson(&abs);
                        break;
                case 0:   //0.退出通讯录
                        cout << "欢迎下次使用" << endl;
                        ofa.open("d:\\通讯录.data",ios::out|ios::binary);//先把内容存入文件再退出;
                        ofa.write((const char *)&abs,sizeof(abs));       //把对象abs写入二进制文件;
                        ofa.close();                                     //关闭文件;
                       
                        system("CLS");
                       
                        return 0;
                       
                default:
                        break;
                }
        }
       
       
}




上一篇:C++实例分享 《猴子吃桃》
下一篇:c++ 复制构造和移动构造的方法有哪些
17_avatar_middle
最佳答案
40 
在线会员 发表于 2022-7-25 00:47:22 | 显示全部楼层
本帖最后由 yoobaby 于 2022-7-25 00:57 编辑

栈内存出错了吧。具体啥原因没再细看了!试着改了下,开到堆区,就解决了。

注意下 //*******
  1.         Addressbooks* abs = new Addressbooks; //*******

  2.         ifstream ifa;
  3.         ifa.open("T:\\通讯录.data", ios::in | ios::binary);
  4.         if (ifa.is_open())      //如果打开文件成功查看是否是空文件
  5.         {
  6.                 ifa.seekg(0, ios::end);//把文件指针指到文件末尾;
  7.                 streampos ps = ifa.tellg();//用tellg函数返回一个值,这个值存放在streampos类的ps对象里;
  8.                 ifa.seekg(0, ifa.beg);          //*******

  9.                 if (ps)         //如果长度不是零
  10.                 {
  11.                         ifa.read((char*)abs, ps);//*******
  12.                         ifa.close();                        //关闭文件;
  13.                 }
  14.         }
  15.         else
  16.         {
  17.                 abs->m_Size = 0;//初始化通讯录中当前人员个数
  18.         }




  19. // 写文件  

  20.   ofa.write((char*)abs, sizeof(*abs));
复制代码
79_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2022-7-25 23:08:22 | 显示全部楼层
问题解决了,因为在程序里使用了string类型,该类型是在堆里new出来的。复制的时候把指针一块复制进去了造成了指针混乱,把string换成char就行了下面是改好的程序
  1. // 引用.cpp : 定义控制台应用程序的入口点。
  2. //
  3. #include "StdAfx.h"
  4. #include <iostream>
  5. #include <fstream>
  6. using std::string;
  7. using namespace std;
  8. #define  MAX  20//先定一个小的本子存20人;
  9. //定义联系人结构
  10. struct Person  //结构名称为Person;
  11. {   //姓名用64个字节
  12.         char m_Name[64];
  13.         //性别用整数
  14.         int m_Sex;
  15.         //年龄用整数
  16.         int m_Age;
  17.         //电话号码用20字节char数组
  18.         char m_Phone[20];
  19.         //地址用128字节char数组
  20.         char m_Addr[128];
  21. };//记得加分号;
  22. //以下定义记录本结构
  23. struct bk
  24. {        //第一个元素是person结构类型的数组;
  25.         struct Person perArr[MAX];
  26.         //记录本里的序列号;
  27.         int m_Size;

  28. };//记得加分号;

  29. struct bk book;//定义一个记录本类型的变量用来存储真实数据;

  30. /****************************************************************
  31. //自己写的拷贝函数用来进行字符串拷贝
  32. target是目标char数组,source是源char字符串;
  33. ******************************************************************/
  34. void mycpy(char *target, const char *source)
  35. {
  36.         if ( source == NULL) //如果是空字符串就没必要拷贝了;
  37.         {
  38.                 return ;
  39.         }

  40.         int i = 0;       //定义一个整型变量用来当下标;
  41.         while (source[i] != '\0')//从第零个下标指示的源数组开始拷贝直到出现\0
  42.         {
  43.                 target[i] = source[i];//逐个字节拷贝;
  44.                 i++;                   //下标自增;
  45.         }
  46.         target[i] = '\0';//\0没有拷贝走,最后往目标数组最后补充\0代表字符串结尾;

  47. }
  48. //3------添加联系人
  49. void addPerson()
  50. {
  51.         //判断通讯录是否已满,满了就不再添加
  52.         if (book.m_Size == MAX)
  53.         {
  54.                 cout << "通讯录已满,无法添加" << endl;
  55.                 return;
  56.         }
  57.         else
  58.         {
  59.                 //姓名
  60.                 char name[64];
  61.                 cout << "请输入姓名:" << endl;
  62.                 cin >> name;//键盘输入字符串存入name[]char 数组;
  63.                 //用自己写的拷贝函数逐字节地把输入的字节考入结构体内的数组;
  64.                 mycpy(book.perArr[book.m_Size].m_Name , name);
  65.                 //性别
  66.                 cout << "请输入性别:" << endl;
  67.                 cout << "1-----男" << endl;
  68.                 cout << "2-----女:" << endl;
  69.                 int sex = 0;

  70.                 while (true)
  71.                 {
  72.                         cin >> sex;
  73.                         if (sex == 1 || sex == 2)
  74.                         {
  75.                                 book.perArr[book.m_Size].m_Sex = sex;
  76.                                 break;
  77.                         }
  78.                         cout << "输入有误,请重新输入" << endl;
  79.                 }

  80.                 //年龄
  81.                 cout << "请输入年龄:" << endl;
  82.                 int age = 0;
  83.                 cin >> age;
  84.                 book.perArr[book.m_Size].m_Age = age;
  85.                 //电话
  86.                 cout << "请输入电话:" << endl;
  87.                 char phone[20];
  88.                 cin >> phone;
  89.                 ////用自己写的拷贝函数逐字节地把输入的字节考入结构体内的数组;
  90.                 mycpy(book.perArr[book.m_Size].m_Phone, phone);
  91.                 //住址
  92.                 cout << "请输入住址:" << endl;
  93.                 char  address[128];
  94.                 cin >> address;
  95.                 //用自己写的拷贝函数逐字节地把输入的字节考入结构体内的数组;
  96.                 mycpy(book.perArr[book.m_Size].m_Addr ,address);
  97.                 //更新通讯录人数
  98.                 book.m_Size++;
  99.                 cout << "添加成功" << endl;
  100.                 system("pause");
  101.                 system("CLS");//清空屏幕
  102.         }
  103. }
  104. //4---- -显示所有联系人
  105. void showPerson()
  106. {
  107.         //判断通讯录中人数是否为0
  108.         if (book.m_Size == 0)
  109.         {
  110.                 cout << "当前记录为空" << endl;
  111.         }
  112.         else
  113.         {
  114.                 for (int i = 0; i < book.m_Size; i++)
  115.                 {
  116.                         //姓名
  117.                         cout << "姓名" << book.perArr[i].m_Name << "\t";
  118.                         //年龄
  119.                         cout << "年龄" << book.perArr[i].m_Age << "\t";
  120.                         //性别
  121.                         cout << "性别" << (book.perArr[i].m_Sex == 1 ? "男" : "女") << "\t";
  122.                         //电话
  123.                         cout << "电话" << book.perArr[i].m_Phone << "\t";
  124.                         //住址
  125.                         cout << "住址" << book.perArr[i].m_Addr << endl;
  126.                 }
  127.         }
  128.         system("pause");
  129.         system("CLS");
  130. }
  131. //5------检测联系人是否存在,如果存在,返回联系人所在的数组中的具体位置,不存在返回-1
  132. int isExist(char name[64])
  133. {
  134.         for (int i = 0; i < book.m_Size; i++)
  135.         {
  136.                 //找到用户输入的姓名了
  137.                 //用字符比较函数strcmp比较两个字符串里的内容是否相同,相同返回0;所以取反;
  138.                 if(!( strcmp(book.perArr[i].m_Name , name)))
  139.                 {
  140.                         return i;//若相同返回下表号;
  141.                 }
  142.         }
  143.         return -1; //如果遍历结束都没有找到,返回-1
  144. }

  145. //6------ -删除指定联系人
  146. void deletePerson()
  147. {
  148.         cout << "请输入你要删除的联系人" << endl;
  149.         char  name[64];
  150.         cin >> name;
  151.         //ret==-1未查到
  152.         //ret!=1查到了
  153.         int ret = isExist( name);
  154.         if (ret != -1)
  155.         {   //这里写得罗嗦了,直接用最后一个覆盖被删除的比这个快;
  156.                 for (int i = ret; i < book.m_Size; i++)
  157.                 {
  158.                         book.perArr[i] = book.perArr[i + 1];
  159.                 }
  160.                 book.m_Size--; //更新通讯录的人员数
  161.         }
  162.         else
  163.         {
  164.                 cout << "查无此人" << endl;
  165.         }
  166. }

  167. //7--------查找指定联系人信息
  168. void findPerson()
  169. {
  170.         cout << "请输入你要查找的联系人" << endl;
  171.         char name[64];
  172.         cin >> name;
  173.         //判断指定的联系人是否在通讯录中
  174.         int ret = isExist(name);
  175.         if (ret != -1)
  176.         {
  177.                 //姓名
  178.                 cout << "姓名" << book.perArr[ret].m_Name << "\t";
  179.                 //性别
  180.                 cout << "性别" << book.perArr[ret].m_Sex << "\t";
  181.                 //年龄
  182.                 cout << "年龄" << book.perArr[ret].m_Age << "\t";
  183.                 //电话
  184.                 cout << "电话" << book.perArr[ret].m_Phone << "\t";
  185.                 //住址
  186.                 cout << "住址" << book.perArr[ret].m_Addr << "\t";
  187.         }
  188.         else
  189.         {
  190.                 cout << "查无此人" << endl;
  191.         }
  192.         system("pause");
  193.         system("CLS");
  194. }
  195. //8------------修改指定联系人信息
  196. void modifyPerson()
  197. {
  198.         cout << "请输入你要修改的联系人" << endl;
  199.         char name[64];
  200.         cin >> name;
  201.         int ret = isExist(name);
  202.         if (ret != -1)
  203.         {
  204.                 //姓名
  205.                 char  name[64];
  206.                 cout << "请输入姓名" << endl;
  207.                 cin >> name;
  208.                 mycpy(book.perArr[ret].m_Name , name);
  209.                 //性别
  210.                 cout << "请输入性别" << endl;
  211.                 cout << "1---男" << endl;
  212.                 cout << "2---女" << endl;
  213.                 int sex = 0;

  214.                 while (true)
  215.                 {
  216.                         cin >> sex;
  217.                         if (sex == 1 || sex == 2)
  218.                         {
  219.                                 book.perArr[ret].m_Sex = sex;
  220.                                 break;
  221.                         }
  222.                         cout << "输入有误,请重新输入" << endl;
  223.                 }
  224.                 //年龄
  225.                 cout << "请输入年龄" << endl;
  226.                 int age = 0;
  227.                 cin >> age;
  228.                 book.perArr[ret].m_Age = age;
  229.                 //电话
  230.                 cout << "请输入电话" << endl;
  231.                 char phone[20];
  232.                 cin >> phone;
  233.                 mycpy(book.perArr[ret].m_Phone, phone);
  234.                 //住址
  235.                 cout << "请输入住址" << endl;
  236.                 char address[128];
  237.                 cin >> address;
  238.                 mycpy(book.perArr[ret].m_Addr , address);
  239.                 cout << "修改成功" << endl;
  240.         }
  241.         else
  242.         {
  243.                 cout << "查无此人" << endl;
  244.         }
  245.         system("pause");
  246.         system("CLS");
  247. }

  248. //9----------------清空所有联系人
  249. void cleanPerson()
  250. {
  251.         book.m_Size = 0;
  252.         cout << "通讯录已清空" << endl;
  253.         system("pause");
  254.         system("CLS");
  255. }

  256. void showMoun()
  257. {
  258.         cout << "**************************" << endl;
  259.         cout << "*****  1.添加联系人  *****" << endl;
  260.         cout << "*****  2.显示联系人  *****" << endl;
  261.         cout << "*****  3.删除联系人  *****" << endl;
  262.         cout << "*****  4.查找联系人  *****" << endl;
  263.         cout << "*****  5.修改联系人  *****" << endl;
  264.         cout << "*****  6.清空联系人  *****" << endl;
  265.         cout << "*****  0.退出通讯录  *****" << endl;
  266.         cout << "**************************" << endl;
  267. }





  268. int main()
  269. {
  270.        

  271.         int codes=0;  //定义一个整型变量用来判断文件是我们要的类型吗
  272.         int filen=0;  //定义一个整型变量用来存储文件长度;
  273.         ifstream ifa; //定义一个用于输出的流对象ifa;
  274.         book.m_Size = 0;//初始化通讯录中当前人员个数
  275.         //查看是否有我们要用的记录
  276.         ifa.open("d:\\通讯录.data",ios::in|ios::binary);


  277.            if(ifa.is_open())      //如果打开文件成功查看是否是空文件
  278.               {

  279.                 ifa.read((char*)&codes,4);//先二进制读4个字节看看跟我们预留的暗号0xa5a55a5a相符吗?
  280.                 if(codes==0xa5a55a5a)     //如果相符
  281.                 {
  282.                         ifa.read ((char *)&filen,4);//如果相符再读4字节,这是我们上次写入的长度;
  283.                         //用char*强制类型转换;把上次的长度字节数读入到book对象;
  284.                         ifa.read((char *)&book,filen);//把上次写入的数据读入book;

  285.                         ifa.close();                        //关闭文件;
  286.                 }//if(codes==0xa5a55a5a)结尾

  287.            }// if(ifa.is_open()) 结尾;
  288.         else//如果打开文件不成功则认为是首次使用
  289.                 book.m_Size = 0;//直接把下标放到首位;


  290.         int tiaojian=1; //让死循环跳出的条件用了拼音;
  291.         int select = 0; //初始化用户选择输入的变量
  292.         ofstream ofa;   //定义一个用于输出的文件对象;
  293.         while (tiaojian)
  294.         {
  295.                 showMoun();  //调用菜单
  296.                 cin >> select;
  297.                 switch (select)
  298.                 {
  299.                 case 1:  //1.添加联系人
  300.                         addPerson();
  301.                         break;
  302.                 case 2:   //2.显示联系人
  303.                         showPerson();
  304.                         break;
  305.                 case 3:   //3.删除联系人
  306.                         deletePerson();
  307.                         break;
  308.                 case 4:   //4.查找联系人
  309.                         findPerson();
  310.                         break;
  311.                 case 5:   //5.修改联系人
  312.                         modifyPerson();
  313.                         break;
  314.                 case 6:   //6.清空通讯录
  315.                         cleanPerson();
  316.                         break;
  317.                 case 0:   //0.退出通讯录

  318.                         cout << "欢迎下次使用" << endl;
  319.                         codes=0xa5a55a5a;//文件类型验证码;
  320.                         ofa.open("d:\\通讯录.data",ios::out|ios::binary);//先把内容存入文件再退出;
  321.                         ofa.write((const char *)&codes,4); //先写入4个字节验证码;
  322.                         filen=sizeof(book);                //算出变量的长度,写入文件;
  323.                         ofa.write((const char *)&filen,4);
  324.                         ofa.write((const char *)&book,filen);       //把对象book写入二进制文件;
  325.                         ofa.close();                                     //关闭文件;


  326.                         system("CLS");
  327.                         tiaojian=0;//跳出死循环;
  328.                         break;

  329.                 default:
  330.                         break;
  331.                 };//switch
  332.         }//while()


  333. }
复制代码
79_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2022-7-25 23:12:16 | 显示全部楼层
本帖最后由 Liulaowu 于 2022-7-25 23:13 编辑

弄了一下午,啥事情都有可能啊;
79_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2022-7-26 06:40:25 | 显示全部楼层
yoobaby 发表于 2022-7-25 00:47
栈内存出错了吧。具体啥原因没再细看了!试着改了下,开到堆区,就解决了。

注意下 //*******

用你的办法我搞不好,能不能把代码传来啊?
17_avatar_middle
最佳答案
40 
在线会员 发表于 2022-7-26 11:31:24 | 显示全部楼层
本帖最后由 yoobaby 于 2022-7-26 11:32 编辑
Liulaowu 发表于 2022-7-26 06:40
用你的办法我搞不好,能不能把代码传来啊?


这种保存数据的方法应该很少用的,不用太纠结。而且你找到的问题出在哪了!
程序退出的时候崩溃不知为啥 StartConsole.rar (2.36 KB, 下载次数: 1)
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号-4 )|网站地图wx_jqr

GMT+8, 2023-6-4 22:59

Powered by CcTry.CoM

© 2009-2021 cctry.com

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