Tengo este código:
#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?
Asi es... pero puedes usar un arreglo de registros si deseas trabajar con estructuras estaticas o con listas si deseas trabajar con estructuras dinamicas ;-)
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:
do
{
std::cout << "Inserte precio del producto: ";
std::cin >> a.price;
}while(cin.fail())