Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: adrisc en 19 Diciembre 2012, 16:28 pm



Título: PROBLEMAS CON LA IMPRESIÓN DE FICHEROS
Publicado por: adrisc en 19 Diciembre 2012, 16:28 pm
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