C/Visual C - Ayuda con archivos

 
Vista:

Ayuda con archivos

Publicado por oscar Ivan (4 intervenciones) el 12/04/2003 04:55:24
Porque cuando leo un archivo de esta forma:
lectura=fopen("autos.dat","r");
while(!feof(lectura))
{
fread(&dat,sizeof(dat),1,lectura);
}
cuando lo lee, me muestra dos veces el ultimo registro, lo vuelvo a ejecutar y me lo muestra tres veces, 4 5, etc, siendo que on se repite en el contenido del archivo.......

Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda con archivos

Publicado por Luis Antonio Cervantes (21 intervenciones) el 12/04/2003 08:34:22
¿Realmente que el lo que quieres hacer?

Por lo que veo quieres leer un archivo, pero creo que tienes un error:
fread(&dat, sizeof(dat), 1, lectura);

en sizeof(dat), dat no es un tipo de dato valido, creo que seria mejor:
fread(&dat, sizeof(char), 1, lectura);
eso suponiendo que dat sea una variable de tipo caracter.

Espero haberte sido de ayuda.
Cualquier duda que tengas enviamela.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

dat es una estructura

Publicado por Oscar Ivan (4 intervenciones) el 12/04/2003 16:55:06
la variable que uso en sizeof(dat), dat es una variable de estructura
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:dat es una estructura

Publicado por chuidiang (677 intervenciones) el 13/04/2003 00:43:53
El problema es que feof() no da cierto hasta que se intenta leer el final del fichero. La forma correcta de hacerlo es hacer una lectura justo antes del bucle.

fread()
while (!feof())
{
trata resultado lectura
fread()
}

Se bueno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar