Errore di compilazione c++ array di record

di Anonimizzato28455 il
2 risposte
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

  • Se non metti il codice tra tag CODE nessuno può aiutarti...
  • 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