Hola a todos, estoy trabajando con ficheros y quiero que extraiga de un fichero de texto la fecha y el sexo de las personas, el fallo es que en cuando compilo me da solamente la fecha del primer elemento de la tabla todo el rato independientemente del valor de i en tFecha[ i ], debe ser algun fallo pequeño, os paso el código entero por partes, gracias de antemano:
MAIN:
#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;
}
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:
#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