0

そのため、現在、「customers.txt」という名前のタブ区切りファイルがあり、各顧客データベース エントリは次の形式になっています。

id<tab>name<tab>address<tab>city<tab>postcode<tab>purchaseDate<tab>amountowed

いくつかのサンプル エントリは次のようになります。

C0001   George I. Bullock   1295 Donec St.  Limena  9545    14/07/13    3548.17
C0002   Kyla M. Byrd    Ap #505-6018 Adipiscing Ave Camporotondo di Fiastrone   5773    05/06/14    6934.61
C0003   Moses J. Decker 533-2825 Turpis Rd. Carnoustie  4473    27/01/14    6801.02

Customer クラス ファイルで >> 演算子をオーバーロードして、関連するすべてのフィールドを正しく読み取り、それらのフィールドから Customer オブジェクトをインスタンス化し、新しく作成された Customer オブジェクトを Customer ベクター内に格納したいと考えています。しかし、どうすればいいのかわかりません。これは私がこれまでに行ったことです:

//main.cpp:

vector <Customer> cList;
ifstream cDbase("datafiles/customers.txt");

if (!cDbase)
{
    cerr << "Customers.txt could not be read." << endl;
    exit(1);
}

if (cDbase.good())
{
    while (!cDbase.eof())
    {
        /*
           I HAVE NO IDEA WHAT TO PUT HERE
        */
        Customer newCust = Customer(in);
        cList.push_back(newCust);
    }
    cDbase.close();
}

.

//Customer.h
private:
        std::string custID;
        std::string custName;
        std::string custAddress;
        std::string custCity;
        int custPCode;
        Date purchaseDate;
        double amountOwed;
public: 
        friend std::istream& operator>> (std::istream &in, Customer &cust);

.

//Customer.cpp:

istream& operator>> (istream &in, Customer &cust)
{
    in >> cust.custID;
    in >> cust.custName;
    in >> cust.custAddress;
    in >> cust.custCity;
    in >> cust.custPCode;
    in >> cust.amountOwed;
    return in;
}

私が言ったように、私は自分が何をしているのかわからないので、どんな助けも大歓迎です。

もう 1 つの問題は、日付フィールドです。テキスト ファイルにリストされている Date の各部分を読み取り、Date コンストラクターを呼び出すことができる形式に変換するにはどうすればよいですか? 例えば:

変換:

14/07/13

に:

Date(14,7,13)
4

0 に答える 0