Hola, mi prodecimiento no modifica el registro tal, luego de modificarlo me guarda cualquier cosa, el problema estara en el procedimiento de carga? puse fflush(stdin); por todas partes;
void modificar(parchivo docentes, int codigo)
{
tdocente d;
bool encontrado=false;
docentes=fopen("docentes.txt","r+");
if(docentes==NULL){
cout<<"No se pudo abrir el archivo"<<endl;
}
else{
while(!feof(docentes) && !encontrado){
fread(&d,sizeof(d),1,docentes);
if(!feof(docentes) && codigo==d.legajo){
encontrado=true;
}
}
if(encontrado==false){
cout<<"Docente no encontrado"<<endl;
}
else{
cargar(d);
fseek(docentes,-sizeof(d),1);
fwrite(&d,sizeof(d),1,docentes);
}
}
fclose(docentes);
}
:huh:
Cómo está definido tdocente?
tdocente es un registro de datos personales de un docente, ya encontre el error el error estaba en un simple caracter en todos mis procedimientos y funciones, faltaba un caracter "b"; habia encontrado un metodo de copiar en un archivo temporal todos los registros menos el especificado por el usuario, borrar el original y renombrar el temporal por el noombre del archivo orginal , pero es medio aburrido, asi que simplemente modifique el registro especificado y ya, gracias ;-)