我想了解更多關於向量和存儲對象的信息。我正在從txt文件讀取數據。我看不出我犯了什麼錯誤,因爲它不起作用。對象向量C++
這裏是我的主要方法
void Reader::readFoodFile() {
string name;
int cal, cost;
ifstream file;
file.open("food.txt");
while (file >> name >> cal >> cost) {
Food f(name, cal, cost);
foodStorage.push_back(f);
}
}
void Reader::getStorage() {
for (unsigned int i = 0; i < foodStorage.size(); i++) {
cout << foodStorage[i].getName();
}
}
,這裏是我的菜構造:
Food::Food(string newName, int newCalories, int newCost) {
this->name = newName;
this->calories = newCalories;
this->cost = newCost;
}
在我的main.cpp文件,我只是創建對象讀卡器(現在還沒有構造函數)和調用方法。
int main(int argc, char** argv) {
Reader reader;
reader.readFoodFile();
reader.getStorage();
}
我想使用從txt文件中獲取數據然後將其打印出來(現在)的對象填充Vector。
有什麼建議嗎?
編輯;我的.txt文件的佈局是
apple 4 2
strawberry 2 3
carrot 2 2
這是我Food.h和Reader.h
#ifndef FOOD_H
#define FOOD_H
#include <string>
#include <fstream>
#include <iostream>
using namespace std;
class Food {
public:
Food();
Food(string, int, int);
Food(const Food& orig);
virtual ~Food();
string getName();
int getCalories();
int getCost();
void setCost(int);
void setCalories(int);
void setName(string);
int calories, cost;
string name;
private:
};
#endif /* FOOD_H */`
and Reader.h
`#ifndef READER_H
#define READER_H
#include <string>
#include <fstream>
#include <iostream>
#include <vector>
#include "Food.h"
using namespace std;
class Reader {
public:
Reader();
Reader(const Reader& orig);
virtual ~Reader();
void readFoodFile();
void getStorage();
vector<Food> foodStorage;
private:
};
#endif /* READER_H */
你看到的不正確的行爲是什麼? – yiding 2013-05-02 00:12:20
當我嘗試調用getStorage()時,我沒有輸出,只是一個空行。 – ChrisA 2013-05-02 00:16:13
你用什麼來調試代碼? – johnathon 2013-05-02 00:20:41