1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
|
void loadInfo(string filename, vector<SnackCart> &cart, vector<Restaurant> &diner, int &cartCount,int &resCount)
{
cart.resize(100);
diner.resize(100);
ifstream dataFile(filename.c_str());
cartCount = 0;
resCount = 0;
string type, owner;
while (!dataFile.eof()) {
getline(dataFile,type);
if (type == "Snackcart"){
getline(dataFile,owner);
if (owner == "") {
break; // stop read if reach end of file
} else {
cart[cartCount].setOwner(owner);
string location;
getline(dataFile,location);
cart[cartCount].setLocation(location);
cart[cartCount].clearMeals();
bool moreMeals = true;
while (moreMeals) {
string meal;
getline(dataFile,meal);
if (meal == "#") {
moreMeals = false;
} else {
string numStr;
getline(dataFile,numStr);
float num = (float) atof(numStr.c_str());
string ratingStr;
getline(dataFile,ratingStr);
cart[cartCount].loadaddMeal(meal,num,ratingStr);
}
}
++cartCount;
}
}
else if (type == "Restaurant")
{
getline(dataFile,owner);
if (owner == "") {
break; // stop read if reach end of file
} else {
diner[resCount].setOwner(owner);
string address;
getline(dataFile,address);
diner[resCount].setAddress(address);
int phno;
cin >> phno;
diner[resCount].setPhoneNo(phno);
string ophrs;
getline(dataFile, ophrs);
diner[resCount].setOpHrs(ophrs);
diner[resCount].clearMeals();
bool moreMeals = true;
while (moreMeals) {
string meal;
getline(dataFile,meal);
if (meal == "#") {
moreMeals = false;
} else {
string numStr;
getline(dataFile,numStr);
float num = (float) atof(numStr.c_str());
string ratingStr;
getline(dataFile,ratingStr);
diner[resCount].loadaddmeal(meal,num,ratingStr);
}
}
}
++resCount;
}
else if (type == ""){
break;
}
}
cart.resize(cartCount);
diner.resize(resCount);
dataFile.close();
}
| |