2

顧客の名前、ID、およびローン情報をファイルから読み取ろうとしています。ファイルは次のように設定されています。

Williams, Bill
567382910
380.86
Davidson, Chad
435435435
400.00

基本的に、新しい名前になるたびに、情報はCustomerクラスの新しいオブジェクトに配置されます。私の問題は、ファイルから読み取ろうとしているのですが、演算子を正しくオーバーロードして、ファイルから3行だけを読み取り、適切な場所に配置する方法がわかりません。

顧客を作成し、ここでファイルを開きます。

Menu::Menu()
{
Customer C;
ifstream myFile;

myFile.open("customer.txt");
while (myFile.good())
{
  myFile >> C;
  custList.insertList(C);
}
}

これは、Menuクラスの.cppファイルにあるものです。これが、Customerクラスの.cppファイルにあるオーバーロードされた演算子のコード(私が行う方法を知っている小さなビット)です。

istream& operator >> (istream& is, const Customer& cust)
{


}

3つの線だけを取得して、顧客内のそれぞれの場所に配置する方法がわかりません。

string name
string id
float loanamount

誰かがこれで私を手伝ってくれるなら、私は本当に感謝します。

4

1 に答える 1

7

何かのようなもの:

istream& operator >> (istream& is, Customer& cust) // Do not make customer const, you want to write to it!
{
    std::getline(is, cust.name); // getline from <string>
    is >> cust.id;
    is >> cust.loanAmount;
    is.ignore(1024, '\n'); // after reading the loanAmount, skip the trailing '\n'
    return is;
}

そして、これが実用的なサンプルです。

于 2012-09-26T22:40:22.657 に答える