no puedo sacar std::vector de un archivo binario
Publicado por Jose (5 intervenciones) el 15/09/2008 20:57:42
Buenos dias:
disculpen comunidad tengo una pregunta sobre lo siguiente:
//declaro un vector de 5 elementos de tipo Lista (la hice con structs y es doblemente enlazada para que haga los ingresos en orden según la cadena que meta)
std::vector<Lista>* Lvector = new std::vector<Lista>(3);
// la lista tiene su método para agregar " void Lista::add(char p1[ ], int p2[ ]) "
// a continuación voy agregando 3 datos al vector
Lvector->at(0).add("uno",1);
Lvector->at(1).add("dos",1);
Lvector->at(2).add("tres",3);
luego que hago esto lo que quiero es meterlo en un archivo binario
// Arch es el archivo
fwrite( Lvector , sizeof(Lvector) , 1 , Arch );
// luego que he cerrado el archivo lo abro e intento leerlo.
std::vector<Lista>* Rvector = new std::vector<Lista>();
fread( Rvector , sizeof(Rvector) , 1 , Arch);
pero me sale el siguiente error en tiempo de ejecución
terminate called after throwing an instance of 'std::out_of_range'
what(): vector::_M_range_check
Aborted
*** Exited with status: 134 ***
uso KDevelop 3.5.3
ala porfa ayuda pelase que llevo algunos dias haciendo de todo para que me corra y no me corre, gracias por su atencion comunidad.
disculpen comunidad tengo una pregunta sobre lo siguiente:
//declaro un vector de 5 elementos de tipo Lista (la hice con structs y es doblemente enlazada para que haga los ingresos en orden según la cadena que meta)
std::vector<Lista>* Lvector = new std::vector<Lista>(3);
// la lista tiene su método para agregar " void Lista::add(char p1[ ], int p2[ ]) "
// a continuación voy agregando 3 datos al vector
Lvector->at(0).add("uno",1);
Lvector->at(1).add("dos",1);
Lvector->at(2).add("tres",3);
luego que hago esto lo que quiero es meterlo en un archivo binario
// Arch es el archivo
fwrite( Lvector , sizeof(Lvector) , 1 , Arch );
// luego que he cerrado el archivo lo abro e intento leerlo.
std::vector<Lista>* Rvector = new std::vector<Lista>();
fread( Rvector , sizeof(Rvector) , 1 , Arch);
pero me sale el siguiente error en tiempo de ejecución
terminate called after throwing an instance of 'std::out_of_range'
what(): vector::_M_range_check
Aborted
*** Exited with status: 134 ***
uso KDevelop 3.5.3
ala porfa ayuda pelase que llevo algunos dias haciendo de todo para que me corra y no me corre, gracias por su atencion comunidad.
Valora esta pregunta


0