• Jueves 14 de Noviembre de 2024, 16:51

Autor Tema:  Leer Arch Bin  (Leído 1396 veces)

pmike

  • Miembro activo
  • **
  • Mensajes: 62
    • Ver Perfil
    • http://www.autoresponder.com
Leer Arch Bin
« en: Sábado 25 de Diciembre de 2004, 14:12 »
0
Hola a todos

Como puedo leer un archivo binario "archBin" el cual lo abro, , lo leo, y lo quiero sacar por pantalla en texto normal legible (vamos q puedo entenderlo)

Y no me sale naaa

Aqui esta el codigo

int main(int argc, char **argv)
{
 FILE *fp;
 char cad[256]; //la cadena donde guardo los datos del archivo

 if((fp=fopen("archBin.dat", "rb"))==NULL)
 {
   printf("error abrir");  //abrimos el archivo en cuestion
   exit(1);
 }
 while (feof(fp))
 { //segun:  size_t fread(void *ptr, size_t size, size_t n, FILE *stream);
 if(fread(cad,sizeof(cad),20,fp)!=1)
 {
   printf("error leer");
   exit(1);
 }
 printf("%s",cad); //y lo quiero sacar por la pantalla
 }
 fclose(fp);
   return 0;
}

Gracias
-------------------------------------------------------------

http://www.ebookred.com

-------------------------------------------------------------

CiRRuS

  • Miembro MUY activo
  • ***
  • Mensajes: 218
    • Ver Perfil
    • http://zirrus.es
Re: Leer Arch Bin
« Respuesta #1 en: Lunes 27 de Diciembre de 2004, 22:13 »
0
He estado probando tu código. La función feof la estas usando al revés, debes poner:
Código: Text
  1.  
  2. while(!feof(fp)) {
  3. ...
  4.  
  5.  

Con eso entrarás en el bucle while (si el fichero existe).

Pon atención a tu fread, puesto que sizeof(cad) te devuelve 256, y estas pidiendo 20 bloques de 256 bytes. Si es lo quieres, todo correcto (a mi me dio problemas ;))

Espero haberte ayudado.

Nos vemos! :hola:
Core Dumped
zirrus.es