Programación General > C/C++

 Problema con entrada/salida por archivos

<< < (2/2)

ndi:
Estoy usando Borland 5.5 para compilar. Segund lei feof() no es presiso, es decir, puede devolver "true" aunque no este en el final del archivo, otra posibilidad seria, ir al final del archivo con fseek(pf, 0l, 2) y hacer un fell() para sacar la posicion del ultimo byte y asi vlaerse de este valor y no de feof() :S

Amilius:

--- Cita de: "ndi" ---Estoy usando Borland 5.5 para compilar. Segund lei feof() no es presiso, es decir, puede devolver "true" aunque no este en el final del archivo, otra posibilidad seria, ir al final del archivo con fseek(pf, 0l, 2) y hacer un fell() para sacar la posicion del ultimo byte y asi vlaerse de este valor y no de feof() :S
--- Fin de la cita ---

Tal parece que en este caso feof() devuelve "false" aunque esté en el final del archivo.  :mellow:

De todas formas esta sería la forma más correcta:

--- Código: C --- void mostrar (FILE * fp ) {     categoria buff2;     fseek (fp, 0L, 0);     printf ("|t Cat t|t Totalt|n");     while (1 == fread(&buff2, sizeof(categoria), 1, fp)){           printf ("|t %d t|t %0.2f t|n", buff2.cat, buff2.total);           }     printf("nnn Fin! ");     }  Se desea leer un item y el resultado debería ser que se leyó un item. Tal vez en Borland 5.5 fread retorna "-1" si no pudo leer el item por que no hay más datos en el archivo y "0" si ocurrió otro error.

Navegación

[0] Índice de Mensajes

[*] Página Anterior

Ir a la versión completa