elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Problema con feof
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema con feof  (Leído 1,916 veces)
kuni2006

Desconectado Desconectado

Mensajes: 17


Ver Perfil
Problema con feof
« en: 9 Agosto 2016, 20:41 pm »

Hola yo tengo el siguiente codigo para escrbir en un archivo

Código
  1. {
  2.        if(feof(file1)!=EOF)
  3.        {
  4.        rewind(file1);
  5.        fscanf(file1, "%d", &libre);
  6.        printf("Posicion: %d", libre);
  7.        fseek( file, libre*sizeof(Persona), SEEK_SET );
  8.        }
  9.        else
  10.        {
  11.        fseek( file, 0, SEEK_END );
  12.        }
  13.        fwrite(&persona, sizeof(Persona), 1, file);
  14.        printf("\nPersona guardada!\n");
  15.        pausar();
  16.        fclose(file);
  17.        }

Hasta donde entiendo, si el archivo esta vacio tiene que ir al else pero no lo hace, alguien me puede dar una mano? desde ya gracias


En línea

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.705


🏴 Libertad!!!!!


Ver Perfil WWW
Re: Problema con feof
« Respuesta #1 en: 9 Agosto 2016, 20:52 pm »

Segun la pagina:

http://www.cplusplus.com/reference/cstdio/feof/

Citar
This indicator is generally set by a previous operation on the stream that attempted to read at or past the end-of-file.
Tiene que existir una operacion previa que ya alcanzada el Fin del Archivo.

Esto es.

Si un archivo tiene 100 bvtes y tu les exactamente 100 bytes y no mas, no se activa el Fin del Archivo.
Por lo menos es lo que tengo entendido

Deberias de validar si esta vacio de alguna forma diferente, existe la libreria sys/stat.h en la cual te indica uno de los valores de la estructura stat la longitud del archivo.

Saludos!

Saludos!


En línea

class_OpenGL


Desconectado Desconectado

Mensajes: 437

Si usas Direct3D, no eres mi amigo :P


Ver Perfil
Re: Problema con feof
« Respuesta #2 en: 9 Agosto 2016, 21:08 pm »

AlbertoBSD, tienes la razón. El indicador de final de archivo solo se activa si se ha intentado leer uno o más bytes, pero no se ha/han podido leer porque no quedan más

Esto significa que hay que comprobar el final de archivo después de una operación de lectura.
En línea

Programador aficionado. Me quiero centrar en programar videojuegos. La API que uso para crearlos es OpenGL
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Construir mapa en fichero aleatorio sin el uso de feof
Programación C/C++
edugp 1 2,088 Último mensaje 1 Junio 2012, 21:25 pm
por Foxy Rider
Problema con bucle y funcion feof
Programación C/C++
Franquieli 2 3,573 Último mensaje 30 Julio 2012, 21:21 pm
por Franquieli
feof y fscanf
Programación C/C++
fafafa01 3 3,014 Último mensaje 21 Mayo 2016, 08:27 am
por class_OpenGL
Funcion FEOF
Programación C/C++
SerCorC 1 1,858 Último mensaje 8 Junio 2018, 09:31 am
por MAFUS
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines