Ragazzi una mano? Programma Semplice

di il
1 risposte

Ragazzi una mano? Programma Semplice


Il codice di errore è questo:
[Error] no match for 'operator<<' (operand types are 'std::ostream {aka std::basic_ostream<char>}' and 'tipo_giocatore')

cosa devo fare per risolvere? Grazie in anticipo


#include <iostream>
#include <iomanip>
using namespace std;
#define MAX 100

struct tipo_giocatore
{
string nome;
string cognome;
int anno_nascita;
string ruolo;
float altezza;
float peso;
string societa;
};

int leggi_dim ();
void carica_dati (tipo_giocatore [],int );
void visualizza_dati (tipo_giocatore [],int );
void ricerca_atleta (tipo_giocatore [],int & ,bool & ,string,int);


int main ()
{
int dim,pos;
string atleta_ricercato;
bool trovato;
dim=leggi_dim ();
tipo_giocatore atleti[dim];

// RIEMPIMENTO RECORD ATLETI //
carica_dati (atleti,dim);

// VISUALIZZAZIONE //
visualizza_dati (atleti,dim);

// RICERCA PER COGNOME //
cout<<"Inserire cognome atleta da ricercare: "<<endl;
cin>>atleta_ricercato;
ricerca_atleta (atleti,pos,trovato,atleta_ricercato,dim);
if (trovato==true)
cout<<atleti[pos];
else
cout<<"Atleta ricercato non presente nel record. "<<endl;

fflush (stdin);
getchar ();
return 0;
}

int leggi_dim ()
{
int dim;
do{
cout<<"inserire dimensione massima compresa tra 2 e 100: "<<endl;
cin>>dim;
}while (dim<2 || dim>100);
}


void carica_dati (tipo_giocatore atleti[],int dim)
{
for (int i=0;i<=dim-1;i++)
{
cout<<"Inserire nome atleta: "<<endl;
cin>>atleti.nome;
cout<<"Inserire cognome: "<<endl;
cin>>atleti.cognome;
cout<<"Inserire anno di nascita: "<<endl;
cin>>atleti.anno_nascita;
cout<<"Inserire ruolo: "<<endl;
cin>>atleti.ruolo;
cout<<"Inserire altezza: "<<endl;
cin>>atleti.altezza;
cout<<"Inserire peso: "<<endl;
cin>>atleti.peso;
cout<<"Inserire societa' di appartenenza: "<<endl;
cin>>atleti.societa;
}
}

void ricerca_atleta (tipo_giocatore atleti[],int & pos,bool & trovato,string atleta_ricercato,int dim)
{
trovato=false;
pos=0;
while (trovato==false || pos>dim)
{
if (atleti[pos].cognome==atleta_ricercato)
{
trovato=true;
}
else
pos++;
};
}

1 Risposte

  • Re: Ragazzi una mano? Programma Semplice

    Devi inserire il codice tra tag CODE altrimenti non si capisce molto. E non dovresti usare quel titolo che non vuol dire nulla ...

    Detto questo, manca una linea

    #include <string>

    e questa linea

    cout<<atleti[pos];

    non puoi scriverla perché il compilatore non sa come visualizzare tutti glie elementi della struttura. Dovrai scrivere

    cout<<atleti[pos].nome;

    e così via...
Devi accedere o registrarti per scrivere nel forum
1 risposte