Errore di compilazione c++ array di record

di il
2 risposte

Errore di compilazione c++ array di record

Ho un problema con la compilazione di un programma c++, il programma è il seguente:
#include <cstdlib>
#include <iostream>
#include <string>
using namespace std;
int dim=100;
struct dati_negozio
{
string nome;
string reparto;
int presente;
int rifornire;
};

int inserimento (struct dati_negozio ) {
dati_negozio prodotti[dim];
int codice=0;
for (int i=0; i<dim; i++){
//Inserimento dati nell'array n
cout<<"Inserisci il nome del prodotto con il codice "<<codice<<endl;
cin>> prodotti.nome;
//Inserimento dati nell'array r
cout<<"Inserisci il reparto (max 3 lettere) del prodotto con il codice "<<codice<<endl;
cin>> prodotti.reparto;
//Inserimento dati nell'array p
cout<<"Inserisci il numero presente in negozio del prodotto con il codice "<<codice<<endl;
cin>> prodotti.presente;
//Inserimento dati nell'array m
cout<<"Inserisci il numero limite (sotto il quale bisogna rifornirsi) del prodotto con il codice "<<codice<<endl;
cin>> prodotti.rifornire;
//Aggiornamento del codice
codice=codice+1;
}
return 0;
}

int menu (struct dati_negozio ){
dati_negozio prodotti[dim];
int risp,scelta,prendi,venduti,inserisci,c,continua;
do {
cout<<"Cosa vuoi fare?"<<endl;
cout<<"1. Aggiorna la giacenza di un prodotto"<<endl;
cout<<"2. Visualizza i prodotti da rifornire"<<endl;
cin>>scelta;
switch (scelta) {

case 1:
do {

cout<<"Inserisci il codice del prodotto di cui vuoi aggiornare la giacenza"<<endl;
cin>>c;
prendi=prodotti[c].presente;
cout<<"Quanti pezzi sono stati venduti?"<<endl;
cin>>venduti;
inserisci=prendi-venduti;
prodotti[c].presente=inserisci;
cout<<"Vuoi continuare? 1=SI 2=NO "<<endl;
cin>>continua;
} while (continua==1);
break;

case 2:
for (int j=0; j<dim; j++){
if (prodotti[j].presente<prodotti[j].rifornire){
cout<<"Il prodotto con il codice "<<j<<" e' da rifornire"<<endl;
}

}
break;

}
cout<<"Vuoi rivisualizzare il menu?"<<endl;
cout<<"1. SI"<<endl;
cout<<"2. NO"<<endl;
} while (risp==1);
}
int main (){
inserimento (dati_negozio);
menu (dati_negozio);
}

L'errore in compilazione è il seguente: [Error] expected primary-expression before ')' token ed è presente nella linea 77 e 78.
Sto cercando e ricercando visto che mi sembra un errore banale ma non trovo la soluzione.
Qualcuno può aiutarmi?

2 Risposte

  • Re: Errore di compilazione c++ array di record

    Se non metti il codice tra tag CODE nessuno può aiutarti...
  • Re: Errore di compilazione c++ array di record

    Ma non vedete il post che inviate? Ci capireste nulla?

    Comunque, con un po' di fantasia ... sicuramente nel main queste chiamate non hanno senso dato che dati_negozio è solo un tipo di dati
    
    inserimento (dati_negozio);
    menu (dati_negozio);
    
    Dovresti scrivere
    
    	dati_negozio prodotti[dim];
    
    	inserimento(prodotti);
    	menu(prodotti);
    	
    	return 0;
    
    e le relative funzioni dovrebbero iniziare con
    
    int inserimento(struct dati_negozio prodotti[]) 
    
    int menu(struct dati_negozio prodotti[]) 
    
    
    ELIMINANDO le
    
    dati_negozio prodotti[dim];
    
    che hai messo al loro interno. Queste sarebbero variabili locali e non ha senso.

    Inoltre la funzione menu è di tipo int quindi deve restituire qualcosa, in questo caso deve terminare con
    
    return 0;
    
    così come il main.
Devi accedere o registrarti per scrivere nel forum
2 risposte