MAIN:
Código
#include <iostream> #include <fstream> #include "gestionFicheros.h" #include "persona.h" using namespace std; int main(){ int numDatos=676; int tFechas[numDatos]; bool tSexo[numDatos]; leerDatosFormatoT01("Personas.txt",tFechas,tSexo,numDatos); cout<<tFechas[3]<<endl; return 0; }
Código
gestionFicheros.cpp: #include <iostream> #include <fstream> #include "persona.h" #include "gestionFicheros.h" using namespace std; void leerDatosFormatoT01(const char nombre[],int tFechas[],bool tSexo[],int& numDatos){ ifstream f; f.open(nombre); if(f.is_open()){ for(int i=0;i<numDatos;i++){ int d,m,a; bool sexo; Persona T[numDatos]; f >> d >> m >> a >> sexo; T[i]=definirPersona(d,m,a,sexo); tFechas[i]=nacido(T[i]); tSexo[i]=esMujer(T[i]); } f.close(); } else{ cerr<<"No se ha abierto el archivo " << nombre << endl; } }
persona.cpp:
Código
#include "persona.h" Persona definirPersona(int d, int m, int a, bool esMujer){ Persona p; p.fecha=a*10000+m*100+d; p.mujer=esMujer; return p; } int nacido(Persona p){ return p.fecha; } bool esMujer(Persona p){ return p.mujer; }
El programa lee un fichero const char nombre[] de estet tipo:
d m a sexo
por ejemplo:
20 01 1934 FALSE
20 11 1997 TRUE
Ejemplo de mi fallo con el main, cuando se supone que cada fecha tendría que ser diferente:
fecha(T[0])=19340120
fecha(T[1])=19340120
fecha(T[2])=19340120