c++ - 如何将对象向量写入文件?
问题描述
我编写了一个应用程序来注册旅行预订。我想将预订信息写入文件。一个用于火车,另一个用于飞机旅行。例如,我决定将火车预订放在一个向量中,我想将该向量的内容写入一个文本文件。我仍然要将其他对象添加到该向量中。问题是我还没有找到将向量的内容写入文件的方法。我试过下面的方法,我从一个例子中得到它,但我想它不适合我的情况,因为它不起作用。你能帮我解决这个问题吗?
#include <cstdlib>
#include <iostream>
#include "Data.h"
#include "Person.h"
#include "Reservation.h"
#include "FlightReservation.h"
#include "TrainReservation.h"
#include <vector>
#include <iterator>
#include <fstream>
using namespace std;
int main(int argc, char** argv) {
Data data(1,1,2020);
Person person("George", "Man");
TrainReservation train(data, person, "common", 100, 50);
Data data2(1,6,2020);
Person person2("Ana", "Woman");
FlightReservation flight(data2, person2, "ABC1180", "50A");
cout<<"Data:\n"<<train.data<<endl;
cout<<"Customer:\n"<<train.getCustomer()<<endl;
cout<<"Train: "<<train.getTrain()<<", vagon: "<<train.getVagon()<<", seat: "<<train.getSeat()<<endl;
cout<<"Data:\n"<<flight.data<<endl;
cout<<"Customer:\n"<<flight.getCustomer()<<endl;
cout<<"Flight: "<<flight.getFlight()<<", seat: "<<flight.getSeat()<<endl;
vector<TrainReservation> v;
v.push_back(train);
fstream f("test.txt", ios::out);
for(vector<FlightReservation>::iterator i = v.begin(); i != v.end() ; ++i)
{
f.write((char *)&(*i),sizeof(*i));
}
f.close();
return 0;
}
解决方案
推荐阅读
- unit-testing - 如何在结构内传递结构数组?
- file - 资产文件夹 Symfony 4 中的 CSS 和 JS 文件
- git - 进行壁球合并时如何在 GitHub 上强制执行提交消息策略?
- html - css hover 不适用于我的 html 中的 col
- ebay-api - eBay Feed API -> uploadFile 脚本在本地 PC 上工作,但在实时服务器上不工作
- firebase - 尝试显示来自 Firebase Firestore 的数据
- hyperledger-fabric - Hyperledgerfabric - 安装示例二进制 docker 镜像
- go - 将十六进制插入字节数组的问题
- python - 将Json文件用作站点信息和设置(Django)是否正确?
- sql - SQL中的行组比较