Foro de elhacker.net

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
  1. #include <iostream>
  2.  
  3. void add();
  4. void db();
  5.  
  6. typedef struct {
  7. int price;
  8. int id;
  9. char name[50];
  10. }prod;
  11.  
  12. prod a;
  13.  
  14. int main()
  15. {
  16. int op;
  17.  
  18. do
  19. {
  20. std::cout << "[1]A&#241;adir [2]Remover [3]Ver base de datos [4]Salir" << std::endl;
  21. std::cout << "Opcion: ";
  22. std::cin >> op;
  23. switch (op)
  24. {
  25. case 1:
  26. add();
  27. break;
  28.  
  29. case 3:
  30. db();
  31. break;
  32. case 4:
  33. return 0;
  34. }
  35. }while (1 < 5);
  36.  
  37. return 0;
  38. }
  39.  
  40. void add()
  41. {
  42. std::cout << "Inserte precio del producto: ";
  43. std::cin >> a.price;
  44. std::cout << "Inserte ID del producto: ";
  45. std::cin >> a.id;
  46. std::cout << "Inserte nombre del producto: ";
  47. std::cin >> a.name;
  48. }
  49.  
  50. void db()
  51. {
  52. std::cout << "Precio del producto: " << a.price << std::endl;
  53. std::cout << "ID del producto: " << a.id << std::endl;
  54. std::cout << "Nombre del producto: " << a.name << std::endl;
  55. }
  56.  
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
  1. do
  2. {
  3.    std::cout << "Inserte precio del producto: ";
  4.    std::cin >> a.price;
  5. }while(cin.fail())