spirit1988
Registrado: 21 Oct 2005 Mensajes: 6
| Publicado: 04/11/2005 10:33 am | | | Título: Turbo c: feof |
| Hola quería sabér porqué el turbo c tiene problemas con el feof. Miren, este código me anda mal:
while (!feof(ArchivoLibros) && fgetc(ArchivoLibros)!='\0') { fseek(ArchivoLibros,-1, SEEK_CUR);
fscanf(ArchivoLibros, "%d %s %s %s %s %d %d %d", &TotalLibros[NroLibros].id, TotalLibros[NroLibros].Nombre, TotalLibros[NroLibros].Autor, TotalLibros[NroLibros].Editorial, TotalLibros[NroLibros].Genero, &TotalLibros[NroLibros].FechaEdicion,&TotalLibros[NroLibros].VecesAlquilado, &TotalLibros[NroLibros].Alquilado); for (j=0; j<TotalLibros[NroLibros].VecesAlquilado; j++) fscanf (ArchivoLibros, "%d", &TotalLibros[NroLibros].HistorialMovimientos[j]);
if (idAnterior!=TotalLibros[NroLibros].id) { idAnterior=TotalLibros[NroLibros].id; NroLibros++; } else break;
}
Es como que no me toma el feof. ¿Puede ser que tenga que poner cada fscanf por separado, porque capaz en que una línea entera no la toma? |
|
Antares
Registrado: 30 Oct 2004 Mensajes: 46
| Publicado: 11/11/2005 9:03 am | | | Título: |
| Yo ya he tenido muchos problemas con el manejo de archivos en turbo c, asi que yo te recomiendo lo siguiente:
Reemplaza tu codigo
| Código: | while (!feof(ArchivoLibros) && fgetc(ArchivoLibros)!='\0') |
por algo asi
| Código: | while(fgetc(ArchivoLibros)!=EOF) |
y con esto creo que lograras el mismo efecto, ya que fgetc devuelve EOF si llega al fin de archivo.
Espero esto te funcione, suerte.
________________________________________________________________ Maldecir es el unio lenguaje que dominan todos los programadores |
|