Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: huchoko en 23 Octubre 2018, 04:06 AM

Título: Multiples instancias de una estructura
Publicado por: huchoko en 23 Octubre 2018, 04:06 AM
Tengo este código:
Código (cpp) [Seleccionar]

#include <iostream>

void add();
void db();

typedef struct {
int price;
int id;
char name[50];
}prod;

prod a;

int main()
{
int op;

do
{
std::cout << "[1]Añadir [2]Remover [3]Ver base de datos [4]Salir" << std::endl;
std::cout << "Opcion: ";
std::cin >> op;
switch (op)
{
case 1:
add();
break;

case 3:
db();
break;
case 4:
return 0;
}
}while (1 < 5);

return 0;
}

void add()
{
std::cout << "Inserte precio del producto: ";
std::cin >> a.price;
std::cout << "Inserte ID del producto: ";
std::cin >> a.id;
std::cout << "Inserte nombre del producto: ";
std::cin >> a.name;
}

void db()
{
std::cout << "Precio del producto: " << a.price << std::endl;
std::cout << "ID del producto: " << a.id << std::endl;
std::cout << "Nombre del producto: " << a.name << std::endl;
}

Funciona, pero quiero poder añadir más de un producto, ya que si una vez añadido un producto, y se vuelve a añadir otro completamente diferente este se sobreescribe.
Alguna idea?
Saludos :)
y... perdón por mi ignorancia.  :silbar:

También, si se llega a insertar un char en el precio, el programa se bugea, como evito eso?
Título: Re: Multiples instancias de una estructura
Publicado por: Beginner Web en 23 Octubre 2018, 04:25 AM
Asi es... pero puedes usar un arreglo de registros si deseas trabajar con estructuras estaticas o con listas si deseas trabajar con estructuras dinamicas  ;-)
Título: Re: Multiples instancias de una estructura
Publicado por: ThunderCls en 23 Octubre 2018, 04:28 AM
Necesitas lo que se conoce como un contenedor de datos, llámese:
1- array - std::array
2- lista - std::list
3- pila - std::stack
4- cola - std::queue
5- etc.

En cuanto a validar la entrada del usuario puedes hacerlo de cualquier forma que se te ocurra, un ejemplo seria:

Código (cpp) [Seleccionar]
do
{
    std::cout << "Inserte precio del producto: ";
    std::cin >> a.price;
}while(cin.fail())