【发布时间】:2017-09-07 02:56:26
【问题描述】:
我有一个如下所示的文件:
C 0484758654 95
C 0428473483 121
T 0494569848
C 0494569848 121
//.. 30 or so more entries
我想将每个“人”(由他们的电话号码表示)存储到一个对象中。我知道我需要一个结构来存储它,所以我使用了 Vector:
using namespace std;
int main()
{
ifstream fin;
fin.open("test.txt");
vector<MonthlyPhoneBill> bill;
MonthlyPhoneBill temp;
while (fin >> temp.code>> temp.phoneNumber >> temp.data)
{
bill.push_back(temp);
}
for (const auto& temp : bill) {
cout << temp.code << ' ' << temp.phoneNumber << ' ' << temp.data << endl;
}
return 0;
}
类:
class MonthlyPhoneBill {
public:
MonthlyPhoneBill();
int data;
int phoneNumber;
std::string code;
int totalBill;
};
但是我有几个问题,第一个问题是当我打印文件内容时它只打印第一行。
我的第二个问题是我不知道如何操作数据,因为它存储在向量中。例如,我想为每个人计算账单。我不确定如何访问向量的内容并进行相应的计算。从文件中,一个人可能会多次出现,我不确定每次出现时如何添加总成本。
【问题讨论】:
-
我很确定您的代码只打印前两行,而不是文件中的第一行。继续查看文件,并尝试找出第三行的不同之处,然后记住这句格言:“计算机只做你告诉它做的事情,而不是你想让它做的事情”。记住这句座右铭后,问问自己:就阅读每一行而言,你告诉你的电脑做什么?现在,就访问向量的内容而言,这已在您的 C++ 书中进行了充分解释。您的 C++ 书中是否有您不清楚的具体内容?