如何将文件存储到包含 C++ 中的类对象的向量中?

Posted

技术标签:

【中文标题】如何将文件存储到包含 C++ 中的类对象的向量中?【英文标题】:how to store file into vector containing class objects in 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"

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

【问题讨论】:

这能回答你的问题吗? How can I read and parse CSV files in C++? 这很像 csv 文件。 【参考方案1】:

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

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

    我不是由知道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 

【讨论】:

以上是关于如何将文件存储到包含 C++ 中的类对象的向量中?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C++ 中将一个对象从一个向量复制到另一个向量?

如何在 C++ 中向向量中添加新对象

从向量中保存的类对象输出类函数

如何将对象存储在向量中的对象中? (C++)

将对象的类类型保存到文件并在 C++ 中读回

通过 C++ 中的外部函数更改存储在另一个对象的向量中的对象中元素的值