Good, first to put them in contexts the function of the code is to add X products of a store and then if the client wants to add another store with And products the problem occurs when it is going to print because the rows can have different number of columns.
#include <iostream>
#include <vector>
using namespace std;
struct comida{
int cant;
string name;
float price;
}f;
vector <comida> food1; //Vector que guarda la estructura de productos de una tenda
vector <vector<comida>> food;//Vector hecho a base del vector anterior para añadir las diferentes tiendas
int main ()
{
string ans,ans2;//Vectores de verificacion
do
{
do
{
cout << "\nIngrese nombre: ";
cin >> f.name;
cout << "\nIngrese cantidad: ";
cin >> f.cant;
cout << "\nIngrese precio: ";
cin >> f.price;
food1.push_back(f);//Al vector de los productos se le van agregando gracias al do while
cout << "\nDesea seguir 0<-no otro numero si: ";
cin >> ans;//Pidiedo variable verificadora
}while(ans!="0");//Verificador, en caso de que el cliente quiera seguir o no
food.push_back(food1);//Se guarda el vector de productos en el vector de tiendas
food1.clear();//Limpiamos en vector de productos
cout << "\nAgregar otra tienda? 0<-no otro numero si: ";
cin >> ans2;//Verificamos si quiere agregar otra tienda
}while(ans2!="0");
cout << "\nNombre\tCantidad Precio" << endl;
//Aqui surge el problema
for (int i=0;i<food.size();i++)
{
int j=0,r=1;
do
{
if(food[i][j].name!="#include <iostream>
#include <vector>
using namespace std;
struct comida{
int cant;
string name;
float price;
}f;
vector <comida> food1; //Vector que guarda la estructura de productos de una tenda
vector <vector<comida>> food;//Vector hecho a base del vector anterior para añadir las diferentes tiendas
int main ()
{
string ans,ans2;//Vectores de verificacion
do
{
do
{
cout << "\nIngrese nombre: ";
cin >> f.name;
cout << "\nIngrese cantidad: ";
cin >> f.cant;
cout << "\nIngrese precio: ";
cin >> f.price;
food1.push_back(f);//Al vector de los productos se le van agregando gracias al do while
cout << "\nDesea seguir 0<-no otro numero si: ";
cin >> ans;//Pidiedo variable verificadora
}while(ans!="0");//Verificador, en caso de que el cliente quiera seguir o no
food.push_back(food1);//Se guarda el vector de productos en el vector de tiendas
food1.clear();//Limpiamos en vector de productos
cout << "\nAgregar otra tienda? 0<-no otro numero si: ";
cin >> ans2;//Verificamos si quiere agregar otra tienda
}while(ans2!="0");
cout << "\nNombre\tCantidad Precio" << endl;
//Aqui surge el problema
for (int i=0;i<food.size();i++)
{
int j=0,r=1;
do
{
if(food[i][j].name!="%pre%"){
cout << food[i][j].name << "\t" << food[i][j].cant << "\t " << food[i][j].price << "\t" << endl;}
else
{
cout << "\t";
r=0;
}
j++;
}while(r!=0);
}
}
"){
cout << food[i][j].name << "\t" << food[i][j].cant << "\t " << food[i][j].price << "\t" << endl;}
else
{
cout << "\t";
r=0;
}
j++;
}while(r!=0);
}
}
The data that I put in input are:
cafe 120 10 1 red 200 20 1 train 100 2000 0 1 ponque 20 200 1 cake 50 400 0 0