OK. Allora a te serve una struttura che abbia questi campi:
prezzo (direi un double va bene)
nome prodotto (un std::string in C++ e non un char[] perche quello è il C)
codice prodotto (un std::string per lo stesso motivo di cui sopra)
quantità (un intero va + che bene)
Quindi per scrivere la tua struct possiamo fare
typedef struct _prodotto
{
std::string nome;
double prezzo;
int quantita;
}prodotto;
Adesso dobbiamo decidere come creare la struttura che conterrà i dati. Il codice prodotto sarà univoco (singolo x ogni prodotto e non ripettibile) quindi una cosa che mi viene in mente è la std::map di cui parlavamo prima. Questa ha l'abilità di tenere la struttura sempre ordinata in ordine crescente (per default) e una ricerca O(logn) il che significa che se tu hai 100000 prodotti diversi la ricerca di un singolo prodotto ci mette quasi 12 comparazioni per trovare il prodotto richiesto. Una mappa può essere scritta in questo modo
std::map<std::string,prodotto> magazzino;
dove con
std::string viene identificato il codice prodotto e con
prodotto viene identificata la struttura associata al codice prodotto.
Forse mi sono allungato un pò troppo. Se c'è qualcosa che non capisci chiedi pure.
In fine il programma che siamo riusciti a fare fino ad adesso (non fa ancora niente ma tranquillo, ci arriviamo)
#include <iostream>
#include <string>
#include <map>
typedef struct _prodotto
{
std::string nome;
double prezzo;
int quantita;
}prodotto;
std::map<std::string,prodotto> magazzino;
//questo sarà il nostro magazzino
int main()
{
return 0;
}