Ok così nella compilazione sembra andare :
codice:#include <stdlib.h> #include <iostream> #define garray 100 #include "newfile.h" using namespace std; /* * */ struct libreria{ char cognomea [24]; char nomea [24]; char nomel [24]; int numl; int annol; }; int main(int argc, char** argv) { int nlibri,i; struct libreria libro[garray]; cout << "Inserire il numero di libri che si desidera memorizzare"; cin >> nlibri; for(i=0;i<nlibri;i++){ cout<<"Inserire il cognome dell'autore:"<<i+1<<endl; cin>>libro[i].cognomea; cout<<"Inserire il nome dell'autore del libro"<<i+1<<endl; cin>>libro[i].nomea; cout<<"Inserire il nome del libro "<<i+1<<endl; cin>>libro[i].nomel; cout<<"Inserire numero del libro "<<i+1<<endl; cin>>libro[i].numl; cout<<"Inserire l'anno del libro "<<i+1<<endl; cin>>libro[i].annol; }; ordina(libro,nlibri); return (EXIT_SUCCESS); }codice:void ordina(struct libreria libro[],int nlibri);Il tutto sembra funzionare , però quando provo a richiamare i valori della struttura non so bene come fare ( /*Qui sottoprogramma*/ ), se li inserisco:codice:#include <iostream> using namespace std; void ordina(struct libreria libro[],int nlibri){ /*Qui sottoprogramma*/ };
cout <<libro[1].annol;
Mi da questo errore:
newfile.cpp:4: error: invalid use of undefined type `struct libreria'
newfile.cpp:3: error: forward declaration of `struct libreria'
newfile.cpp:4: error: invalid use of undefined type `struct libreria'
newfile.cpp:3: error: forward declaration of `struct libreria'
se ci provo a mettere :
cout <<libreria libro[1].annol;
Invece da questo :
newfile.cpp:4: error: expected primary-expression before "libro"
newfile.cpp:4: error: expected `;' before "libro"
Se mi risolvete questo ultimo prob. vi faccio un santino(dato che devo capirlo prima di un esame) ......

(dato che devo capirlo prima di un esame) ......
Rispondi quotando