1

win32 コンソール アプリケーション プログラムを作成しました。ソース コードは次のとおりです。

#include <iostream>
#include <fstream>
#include <vector>
#include <string>

using namespace std;

struct CPassenger
{
    string name;
    string ID;
    string seat;
};

struct CFlight
{
    string flNum;
    string destination;
    int amount;
    int booking;
    string departureTime;
    string fallTime;

    vector<CPassenger> list;
};

class CFlightSystem
{
public:
    CFlightSystem();
    ~CFlightSystem();
private:
    vector<CFlight> flight;
};

CFlightSystem::CFlightSystem()
{
    ifstream infile("flight.txt");

    if(!infile)
    {
        cerr<<"No input file!"<<endl;
        exit(1);
    }
    while(!infile.eof())
    {
        CFlight plane;
        infile>>plane.flNum>>plane.destination
              >>plane.amount>>plane.booking
              >>plane.departureTime>>plane.fallTime;
        for(int i=0;i!=plane.booking;++i)
        {
            CPassenger tmp;
            infile>>tmp.name>>tmp.ID>>tmp.seat;
            plane.list.push_back(tmp);
        }
        flight.push_back(plane);
    }

    infile.close();
}

CFlightSystem::~CFlightSystem()
{
    ofstream outfile("flight.txt");

    if(!outfile)
    {
        cerr<<"No output file!"<<endl;
        exit(1);
    }
    for(vector<CFlight>::iterator iter=flight.begin();
                                  iter!=flight.end();++iter)
    {
        outfile<<iter->flNum<<' '<<iter->destination<<' '
               <<iter->amount<<' '<<iter->booking<<' '
               <<iter->departureTime<<' '<<iter->fallTime<<' '
               <<endl;

        for(vector<CPassenger>::iterator it=(iter->list).begin();
                                         it!=(iter->list).end();++it)
        {
            outfile<<it->name<<' '
                   <<it->ID<<' '
                   <<it->seat<<endl;
        }
    }
    outfile.close();
}

int main()
{
    CFlightSystem management;
    return 0;
}

コードをデバッグすると、コンソールがメッセージを返さないことがわかりました。つまり、メイン関数がまだ呼び出されていますか? デストラクタが期待どおりに機能しているかどうかはわかりません..

私はC++の新入生で、ここに投稿するのは初めてです...(下手な英語で申し訳ありません..助けが得られることを願っています..TT)

4

0 に答える 0