Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Beginner Web en 6 Octubre 2018, 03:44 am



Título: Problemas al modificar un registro de un archivo
Publicado por: Beginner Web en 6 Octubre 2018, 03:44 am
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;
Código
  1. void modificar(parchivo docentes, int codigo)
  2. {
  3. tdocente d;
  4. bool encontrado=false;
  5. docentes=fopen("docentes.txt","r+");
  6. if(docentes==NULL){
  7. cout<<"No se pudo abrir el archivo"<<endl;
  8. }
  9. else{
  10. while(!feof(docentes) && !encontrado){
  11. fread(&d,sizeof(d),1,docentes);
  12. if(!feof(docentes) && codigo==d.legajo){
  13. encontrado=true;
  14. }
  15. }
  16. if(encontrado==false){
  17. cout<<"Docente no encontrado"<<endl;
  18. }
  19. else{
  20. cargar(d);
  21. fseek(docentes,-sizeof(d),1);
  22. fwrite(&d,sizeof(d),1,docentes);
  23. }
  24. }
  25. fclose(docentes);
  26. }
 :huh:


Título: Re: Problemas al modificar un registro de un archivo
Publicado por: MAFUS en 6 Octubre 2018, 20:09 pm
Cómo está definido tdocente?


Título: Re: Problemas al modificar un registro de un archivo
Publicado por: Beginner Web en 6 Octubre 2018, 22:01 pm
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  ;-)