如何将文件存储到包含 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++ 中的类对象的向量中?的主要内容,如果未能解决你的问题,请参考以下文章