そのため、現在、「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)