【问题标题】:how to store file into vector containing class objects in c++?如何将文件存储到包含 C++ 中的类对象的向量中?
【发布时间】:2021-04-13 08:54:17
【问题描述】:

假设一个文件包含

a123,red,23,Greece,"traveling, in cities", "playing games, like cod"
b245,"ted",45,London,"cars", "Exotic cars, loves Lambo"

我一直在尝试读取文件并将其存储在类向量中。 该类有对象string Id、string name、int age、string from、vector Likes。

文件应该以向量的形式存储

vector<class> Info = {
                     {"a123","red",23,"Greece",{"traveling, in cities", "playing games, like cod"},
                     {"b245","ted",45,"London",{"cars", "Exotic cars, loves Lambo"}}

谁能帮助并告诉我我可以使用什么来读取文件,该文件在随机位置填充了引号和逗号,并且以逗号分隔到上面显示的形式的向量中。谢谢

【问题讨论】:

标签: c++


【解决方案1】:

假设向量中的对象属于 User 类。这里有两种情况,

  1. 该文件不是由知道 User 的 c++ 程序编写的: 您应该研究反序列化和序列化。

  2. 我不是由知道User的c++程序编写的文件: 您必须读取文件并创建 User 类型的对象并将它们添加到向量中。您可以按照here的描述读取文件

【讨论】:

    【解决方案2】:
    • 初步构造自己的结构体,每个结构体由以上成员变量组成

    • 第二步,了解文件中的数据结构,这样就可以知道每次可以读取多少数据,形成一个结构

    • 第三步,读取文件,用逗号作为分隔符或者别的什么,分流得到你需要的东西。

    stuct user_data {
      string Id,
      string name,
      int age,
      string from,
      vector Likes
    };
    
    std::vector<user_data> *GetUserDataFromFiles(FILE *file) {
        // spilt string from file 
    }
    

    【讨论】:

      猜你喜欢
      • 2012-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-11
      • 1970-01-01
      • 2013-02-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多