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

这正是我的 .cpp 文件中用于 Menu 类的内容。这是我的 Customer 类的 .cpp 文件中重载运算符的代码(我知道怎么做的一点点)。

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


}

我不确定如何只获取这三行并将它们放在客户内部的各自位置,它们是:

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 回答