首页 > 解决方案 > 如何将对象向量写入文件?

问题描述

我编写了一个应用程序来注册旅行预订。我想将预订信息写入文件。一个用于火车,另一个用于飞机旅行。例如,我决定将火车预订放在一个向量中,我想将该向量的内容写入一个文本文件。我仍然要将其他对象添加到该向量中。问题是我还没有找到将向量的内容写入文件的方法。我试过下面的方法,我从一个例子中得到它,但我想它不适合我的情况,因为它不起作用。你能帮我解决这个问题吗?

#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;
}

标签: c++vector

解决方案


推荐阅读