Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Salve a tutti sto scrivendo un semplice programma che dato un vettore di strutture contente 2 campi di cui il primo formato dal nome della persona e il secondo dalla sua età, si stampi a video il suo contenuto; mi potreste dire dove ho sbagliato??
P.S sono alle prime armi in programmazione e mi scuso con tutti per eventuali errori da pivello
Codice sorgente - presumibilmente C++
constint max_dim=30;
struct persona
{
std::string nome;
int eta;
};
typedef persona vettore[max_dim];
void leggi_vett(const vettore, int&);
void stampa_vett(const vettore, int);
Codice sorgente - presumibilmente C++
#include <iostream>
#include <string>
#include "lib.h"
usingnamespace std;
using std::string;
int main()
{
int riemp;
vettore v;
leggi_vett(v,riemp);
stampa_vett(v,riemp);
system("PAUSE");
return0;
}
Codice sorgente - presumibilmente C++
#include <iostream>
#include <string>
#include "lib.h"
usingnamespace std;
using std::string;
void leggi_vett(const vettore v, int&riemp)
{
int i;
cout<<"inserire riempimento"<<endl;
cin>>riemp;
cout<<"inserire valori nella struttura"<<endl;
for(i=0; i< riemp; i++)
{
std::cin>>v[i].nome;
cin>>v[i].eta;
}
}
void stampa_vett(const vettore v, int riemp)
{
int i;
cout<<"elementi della struttura"<<endl;
for(i=0;i<riemp;i++)
{
std::cout<<v[i].nome;
cout<<v[i].eta;
}
}
Ultima modifica effettuata da alukard990 il 01/02/2010 alle 12:27
ecco l'errore : lib.cpp In function `void leggi_vett(const persona*, int&':
no match for 'operator>>' in 'std::cin >> ((+(((unsigned int)i) * 8u)) + v)->persona::nome'
scusate se non l'ho postato prima mi ero dimenticato
Ho letto il tuo programma, e ho capito che l' errore sta nella funzione leggi_vett:
tu dichiari " void leggi_vett(const vettore v, int &riemp) ", v come const quindi non è possibile modificarlo!
Non capisco come mai spesso usi std::... nonostante sia stato dichiarato
"using namespace std;"
e la dichiarazione "using std::string;" nel file del maine.
Ecco il sorgente corretto:
Codice sorgente - presumibilmente C++
#include <iostream>
#include <string>
#include <cstdlib>
usingnamespace std;
constint max_dim=30;
struct persona
{
string nome;
int eta;
};
typedefstruct persona vettore[max_dim];
void leggi_vett(vettore, int&);
void stampa_vett(const vettore, int);
int main()
{
int riemp;
vettore v;
leggi_vett(v,riemp);
stampa_vett(v,riemp);
system("PAUSE");
return0;
}
void leggi_vett(vettore v, int&riemp)
{
int i;
string fr;
int e=0;
cout<<"inserire riempimento"<<endl;
cin>>riemp;
cout<<"inserire valori nella struttura"<<endl;
for(i=0; i< riemp; i++)
{
cout<<"\nPersona "<<i+1<<"\nInserire il nome ";
cin>>v[i].nome;
cout<<"Inserire l' eta' ";
cin>>v[i].eta;
}
}
void stampa_vett(const vettore v, int riemp)
{
int i;
cout<<"elementi della struttura"<<endl;
for(i=0;i<riemp;i++)
{
cout<<"\nPersona"<<i+1<<":\nNome:";
cout<<v[i].nome;
cout<<"\neta' : "<<v[i].eta;
}
cout<<endl;
}
Ultima modifica effettuata da Poggi Marco il 01/02/2010 alle 22:30