-1
我想從用戶指定的對象向量的文件名中讀取數據。每個向量元素有五個不同的成員變量,我想讀入。在該文件中,將有多個條目(五個成員變量的組),必須讀入每個向量元素。以下是我的(不完整)代碼:在C++中:如何從文件中讀取對象的向量
while (!inputFile.eof())
{
for (unsigned int count = 0; inputFile.eof(); count++)
{
cout << "Vehicle #" << (count + 1) << endl;
inputFile >> temp[count].setVIN();
cout << "VIN: " << temp[count].getVIN() << endl;
inputFile >> temp[count].setMake() << endl;
cout << "Make: " << temp[count].getMake() << endl;
inputFile >> temp[count].setModel() << endl;
cout << "Model: " << temp[count].getModel() << endl;
inputFile >> temp[count].setYear() << endl;
cout << "Year: " << temp[count].getYear() << endl;
inputFile >> temp[count].setPrice() << endl;
cout << "Price: " << temp[count].getPrice() << endl
<< endl;
}
}
但是,這個代碼已經有幾個問題了。其中之一是setVIN()
,setMake()
,setModel()
,setYear()
,setPrice
成員函數需要一個參數(設置VIN,Make,Model等的值)。下面是類的聲明:
class Vehicle
{
private:
string VIN;
string make;
string model;
int year;
double price;
public:
Vehicle(string, string, string, int, double);
Vehicle();
string getVIN();
string getMake();
string getModel();
int getYear();
double getPrice();
void setVIN(string);
void setMake(string);
void setModel(string);
void setYear(int);
void setPrice(double);
};
最後,給出的代碼我張貼的第一塊,在具有inputFile >> .....
的錯誤消息指出「無操作數‘>>’線路匹配這些操作數操作數類型的std :: ifstream >> void「
有人能幫助我度過這段路嗎?
謝謝!
['while(!inputFile.eof())'](http://stackoverflow.com/questions/5605125/why-is-iostreameof-inside-a-loop-condition-considered-wrong) –
另外,如何'inputFile >> temp [count] .setVIN();'應該工作?實際的簽名是'void setVIN(string);'哪個需要一個'std :: string'作爲參數並返回'void'。這絕不是一個合適的語法來調用這個函數。 –
創建一個讀取一個對象的函數,然後如果讀取成功,則將該對象放入向量中。 –