PROBLEMAS CON LA IMPRESIÓN DE FICHEROS

Iniciado por adrisc, 19 Diciembre 2012, 16:28 PM

0 Miembros y 1 Visitante están viendo este tema.

adrisc

Buenos dias,

En un proyecto de la universidad donde se debe imprimir una lista con todas las asignaturas almacenadas en un fichero, el programa solo me imprime la primera y no sigue imprimiendo el resto. No sé a que es debido. Os pongo el codigo::


Codigo desde donde se llama a la función de imprimir

/**
*Imprimirá el listado de todas las asignaturas
*/

void imprimirAsignaturas(){



vector <Asignatura> asignaturas = persistencia.getAsignaturas();

for (int i=0;i<asignaturas.size();i++)

{

asignaturas.print();



}

}



Codigo de persistencia.GetAsignaturas

/**
* Obtiene todos las asignaturas almacenados en la base de datos.
* Si no encuentra asignaturas devuelve una lista vaci­a.
*/
vector<Asignatura> Persistencia::getAsignaturas() {

string linea;
ifstream infile;

// Abrir y recorrer el fichero para obtener los datos

infile.open("asignaturas");
vector<Asignatura> asignaturas;
int i = 0;
while (!infile.eof()) {

Asignatura asignatura;
getline(infile, linea);

if (linea.length() > 0) {

vector<string> atributos;
atributos = split(linea, "###");

int referencia;
referencia = atoi(atributos[0].c_str());
asignatura.setReferencia(referencia);
asignatura.setNombre(atributos[1].c_str());
int aforo;
aforo = atoi(atributos[2].c_str());
asignatura.setAforo(aforo);
int AlumnosMatriculados;
AlumnosMatriculados = atoi(atributos[3].c_str());
asignatura.setAlumnosMatriculados(AlumnosMatriculados);
int curso;
curso = atoi(atributos[4].c_str());
asignatura.setCurso(curso);
int creditos;
creditos = atoi(atributos[5].c_str());
asignatura.setCreditos(creditos);

// Se inserta cada uno de los ejemplares en la lista.
asignaturas.push_back(asignatura);

}


i++;

infile.close();
return asignaturas;
}
}



Gracias por la ayuda, espero su respuesta


Un saludo