【发布时间】:2017-05-03 06:53:14
【问题描述】:
我要提前感谢所有人!我应该做的是从文件(“inventory.txt”)中读取数据并将该数据传递给对象向量。所有的数据都应该存储在一个向量中,包括两个类信息,因此类经销商的指针在类 Vehicle 的公共部分。这是txt文件中的数据;
2K458D345
Mitsubishi
Eclipse
2003
1,650.00
Rocky Mountain Dealership
Denver, Colorado
这是我的类定义:
class Dealer{ //deceleration of class Dealer
private: //private variables
string DealerName;
string DealerAddress;
public: //public members
//class mutators
void setName(string);
void setAddress(string);
//class accessors
string getName();
string getAddress();
Dealer(); // default constructor
Dealer(string, string); //overloaded constructor
};
class Vehicle{ //decleration of class vehicle
private: //private member variables
string VIN;
string Make;
string Model;
int Year;
double Price;
public: // public member variables and functions
Dealer *Dealerprt; //dealer class pointer
Vehicle(); //default constructor
Vehicle(string, string, string, int, double); //overloaded constructor
//class mutators
void setVIN(string); //sets member variable VIN to value in v
void setMake(string); //sets member variable Make to value in m
void setModel(string); //sets member variable Model to value in M
void setYear(int); //sets member variable Year to value in y
void setPrice(double); //sets member variable Price to value in p
//class accessors
string getVin(); //returns value stored in member variable VIN
string getMake(); //returns value stored in member variable Make
string getModel(); //returns value stored in member variable Model
int getYear(); //returns value stored in member variable Year
double getPrice(); //returns value stored in member variable Price
最后这是我到目前为止写的函数,carLot是Vehicle类型的向量的名称。另外我计划做的是创建一个临时对象来读取数据,然后将其传递给一个新对象(导师推荐);
void readInv(vector<Vehicle>& carLot) {
Vehicle tempVehicle;
ifstream invFile;
invFile.open("inventory.txt");
cout << "the file is being read" << endl;
while( ! invFile.eof()){
}
}
我知道这有点长,但我卡住了,无法弄清楚如何正确地将数据放入临时对象。如果有更简单的方法我愿意接受,但我会很感激任何帮助!非常感谢!
编辑当我第一次发布这个时,我的意思是向量,我的意思是我想直接从文件中读取数据到临时对象中。
【问题讨论】:
-
这可能是关于 SO 的最常见问题之一。见例如。相关---->下列出的问题之一
-
这里有个线索:std::getline(invFile, line)
-
对每个vegicle类成员使用
invFile >> a,声明初始化一个实例,然后在while循环中使用carLot.push_back(obj)。在发布问题之前请做一些研究
标签: c++ class object vector ifstream