Salve ragazzi,scusate se sto abusando della vostra pazienza,ma avrei un altro problemino xD..:
Scrivere un programma in C++ che sia in grado di leggere da un file, dal nome candidati.txt, una lista di candidati. Le informazioni sono così strutturate una per ogni riga.
Id_candidato (riga i-esima)
Nome (riga i+1-esima)
Cognome (riga i+2-esima)
Data_di_nascita (riga i+3-esima)
Sesso (riga i+4-esima)
Voti (riga i+5-esima)
E così via.
Organizzare il programma con un main con chiamate a funzione per:
1) Caricare e visualizzare a video la lista dei candidati presenti nel file candidati.txt;
2) Scrivere, in un file candidati_maschi.txt, i candidati maschi nati dopo il 1970 ed in un file candidati_femmine.txt con i candidati femmine nate prima il 1990.
Per il primo punto tutto bene...(utilizzando per le date una variabile string):
int const Max_candidati=50;
struct data
{
int giorno, mese, anno;
};
struct persona
{ int Id_candidato;
string nome;
string cognome;
struct data nascita;
char sesso;
int voto;
};
void LeggiStruct(char NomeFile[],struct persona v[],int &n_candidati)
{n_candidati=0;
ifstream leggi;
leggi.open(NomeFile);
while(!leggi.eof())
{
leggi >>v[n_candidati].Id_candidato;
leggi >>v[n_candidati].nome;
leggi >>v[n_candidati].cognome;
leggi >>v[n_candidati].nascita.giorno;
leggi >>v[n_candidati].nascita.mese;
leggi >>v[n_candidati].nascita.anno;
leggi >>v[n_candidati].sesso;
leggi >>v[n_candidati].voto;
n_candidati++;
}
leggi.close();
}
void StampaStruct(struct persona v[],int n_candidati)
{for(int i=0;i<n_candidati;i++)
{
cout<<v[i].Id_candidato<<endl;
cout<<v[i].nome<<endl;
cout<<v[i].cognome<<endl;
cout<<v[i].nascita.giorno;
cout<<v[i].nascita.mese;
cout<<v[i].nascita.anno;
cout<<v[i].sesso<<endl;
cout<<v[i].voto<<endl;
cout<<endl;
}
}
Letto il secondo punto,mi sono reso conto che non andava bene una variabile string per contenere le date,visto che dovevo confrontare gli anni di nascita.Allora ho usato una struct data che mi avrebbe permesso facilmente di confrontare gli anni...il problema è che le date sul file sono scritte gg/mm/aaaa e non riesco a capire come fare per stampare quello slash e allo stesso tempo mantenere la variabile int :S