Problemas escribiendo en fichero.

08/06/2004 - 11:55 por opotonil | Informe spam
Hola.

Estoy intentando sacar todos los datos de un fichero,
menos uno el que quiero eliminar, a una lista para
despues guardar esta lista otra vez en el fichero
sobrescribiendolo. Los datos los saca perfectamente a la
lista y esta la recorre perfectamente para guardarlos
pero realmente no me guarda nada en el fichero (me lo
deja vacio), y no consigo encontrar el fallo.

void Usuario::eliminar(string login){
bool ok = false;
string comando = "deltree "; //deltree no tira en WinXP.
usuarios auxiliar;
fstream fichero;
list <usuarios> lista;
list <usuarios>::iterator nodo;

fichero.open(fRuta.c_str(), ios::in | ios::binary);
while(!fichero.eof()){
fichero.read((char*)&auxiliar, sizeof(usuarios));
if(!strcmpi(auxiliar.login, login.c_str())){
ok = true;
comando += ruta + auxiliar.directorio;
system(comando.c_str());
}else
lista.push_back(auxiliar);
}
fichero.close();

if(ok){
fichero.open(fRuta.c_str(), ios::out | ios::binary);
for(nodo = lista.begin(); nodo != lista.end(); nodo++){
auxiliar = *nodo;
auxiliar.usuario = fichero.tellg();
fichero.write((char*)&auxiliar, sizeof
(usuarios)); //Aqui debe de fallar
}
fichero.close();
}else
cout << "El usuario no existe." << endl;
lista.clear();
}

Gracias y salu2.
 

Leer las respuestas

#1 Pajaro
16/06/2004 - 12:59 | Informe spam
Has probado a abrir el fichero con streams. Me refiero a los de C de toda la
vida:
FILE *

Un saludo



Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.706 / Virus Database: 462 - Release Date: 14/06/2004

Preguntas similares