Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: clodan en 6 Octubre 2010, 18:42 pm



Título: Problemita con FILES
Publicado por: clodan en 6 Octubre 2010, 18:42 pm
bueno, este es mi code:

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. struct sis{
  5.       char cod;
  6.       char titu;
  7.       char aut;
  8.       char edit;
  9.       int ano;
  10.       char gene;
  11.       };
  12.  
  13. char * prog="DATA.file";
  14. FILE * pf = NULL;
  15.  
  16. int main(int argc, char *argv[]){
  17.  struct sis base[3000];
  18.  pf = fopen( prog, "ab");
  19.  if (pf=NULL){
  20.        printf("Error al Crear, Abrir o Modificar el Archivo");
  21.        while (getchar()!='\n');
  22.        return 0;
  23.        }
  24.  printf("DATA.file abierto.\n");
  25.  printf("Leyendo Datos de DATA.file. Por favor espere...\n");
  26.  while ( !feof(pf)){
  27.        fread( &base, sizeof(base), 1, pf);
  28.        }
  29.  printf("Sistema Interno...\n");
  30.  printf("Eliga la opcion que desea realizar:\n");
  31.  printf("1.");
  32.  while (getchar()!='\n');
  33.  return 0;
  34. }

cada vez que lo pongo a funcionar me tira error y se queda en el momento que tiene que leer los datos. Estamos recien arrancando con lectura y modificacion de archivos asi que por favor, todo en castellano basico! jejejeje

gracias!!!!


Título: Re: Problemita con FILES
Publicado por: [L]ord [R]NA en 6 Octubre 2010, 19:42 pm
lo que sucede es que estas abriendo el archivo solo para escritura... 'a' sirve para añadir datos al final del archivo simplemente... en este caso necesitas 'a+' que te da permisos de lectura.


Título: Re: Problemita con FILES
Publicado por: clodan en 6 Octubre 2010, 19:58 pm
lo que sucede es que estas abriendo el archivo solo para escritura... 'a' sirve para añadir datos al final del archivo simplemente... en este caso necesitas 'a+' que te da permisos de lectura.

probe y me sigue tirando error... :s
pf = fopen( prog, "a+b");
osea le puse:


Título: Re: Problemita con FILES
Publicado por: [L]ord [R]NA en 6 Octubre 2010, 20:04 pm
Cual es el error?


Título: Re: Problemita con FILES
Publicado por: Jaixon Jax en 6 Octubre 2010, 20:18 pm
Código:
if (pf=NULL)

alli esta el error seria:

Código:
if (pf==NULL)


Título: Re: Problemita con FILES
Publicado por: clodan en 6 Octubre 2010, 21:40 pm
Código:
if (pf=NULL)

alli esta el error seria:

Código:
if (pf==NULL)

ya corregi eso, igualmente se sigue colgando en la parte de lectura de datos, como si nunca saliera del bucle me parece


CORREGIDO!!!

El problema esta en el no me detectaba el feof...
entonces puse asi:
Código
  1. while ( x!=feof(pf)){        
  2.          x=fread( &base, sizeof(base), 1, pf);        
  3.          }