HelloWorld_java_ 2022-04-02 15:44 采纳率: 88.2%
浏览 22
已结题

c++应用双层指针数组读取txt文档时因为地址问题导致数据全变成最后一行的数据

这是其中一个片段,导致了date数组中的数据全是User最后的地址的数据,如果想保存每次User的数据该怎么做?感谢解答


user** date = new user*[nume];
    user*User= new user(1, "zhangsan", "password", 100, 1);
    void getdate() {//获取用户信息保存到数组
        fstream ofs;
        getnume();
        ofs.open(file, ios::in);
        for (int i = 0; i < nume; i++) {
            ofs >> User->id
                >> User->Name
                >> User->Password
                >> User->money
                >> User->State;
            date[i] = User;
            cout << date[i]->id<<endl;
        }
        cout << date[0]->id << endl;
        cout << date[1]->id << endl;
        cout << date[2]->id << endl;
        system("pause");
        ofs.close();
    }

运行中数据的变化结果

img


运行完后文档的结果,保存文件的函数没有问题

img

  • 写回答

1条回答 默认 最新

  • 浪客 2022-04-02 15:56
    关注

    data是指针数组,每个date[i] = User;中的User都要new出来。User一直指向同一片内存区域,你一直操作的就是这一片区域了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 4月11日
  • 已采纳回答 4月3日
  • 创建了问题 4月2日

悬赏问题

  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效