当我尝试显示矢量中的所有元素时,它仅显示经销商的名称和经销商的数量,但汽车数量却在缺失!那么如何完整显示整个矢量?
我在Main中声明一个向量,并将其传递给readIn和display函数。 还是push_back出问题了?
但是当我使用调试器时
结果假设如下:
John Elway Dodge 123 2
Tesla Cherry Creek 234 1
但是现在这样:
John Elway Dodge 123
Tesla Cherry Creek 234
由于某些原因缺少“ 2”和“ 1”。 这是我的代码。谢谢你。
#include <fstream>
#include <iostream>
#include <vector>
#include <string>
using namespace std;
class Dealer
{
private:
string dealerName;
int dealerNumber;
int numberOfCars;
public:
Dealer();
Dealer(string _dealerName, int _dealerNumber, int _numberOfCars);
void readIn(vector <Dealer> &tempDealerOne);
};
void display(vector <Dealer> &tempDealerOne);
int main()
{
vector <Dealer> dealerOne;
Dealer dealer1;
dealer1.readIn(dealerOne);
display(dealerOne);
}
// function to read in data
void Dealer::readIn (vector <Dealer> &tempDealerOne)
{
const int size = 23;
ifstream infile;
infile.open("in.txt");
string tempName[size];
int tempDealerNum[size],tempCarNum[size];
Dealer temp1;
for(int i = 0; i < size; i++)
{
getline(infile,tempName[i]);
if(i == 0)
{
infile >> tempDealerNum[i];
infile >> tempCarNum[i];
temp1.dealerName = tempName[i];
temp1.dealerNumber = tempDealerNum[i];
// this
temp1.numberOfCars = tempCarNum[i];
// assign the data to vector
tempDealerOne.push_back(temp1);
}
if(i == 14)
{
infile >> tempDealerNum[i];
infile >> tempCarNum[i];
temp1.dealerName = tempName[i];
temp1.dealerNumber = tempDealerNum[i];
temp1.numberOfCars = tempCarNum[i];
// assign the data to vector
tempDealerOne.push_back(temp1);
}
}
// read in data store in vector
// then pass it to Dealer class
infile.close();
}
void display(vector <Dealer> &tempDealerOne)
{
// what is the problem
for(int i = 0; i < tempDealerOne.size(); i++)
cout << tempDealerOne[0]<< "\n";
}
这是文本文件
John Elway Dodge
123
2
*****
*****
*****
*****
*****
*****
*****
*****
*****
*****
Tesla Cherry Creek
234
1
*****
*****
*****
*****
*****