C/Visual C - FILE

 
Vista:

FILE

Publicado por martin (1 intervención) el 20/02/2010 00:59:07
Tengo el siguiente codigo, donde el archivo src tiene solo 2 bytes pero el while da tres ciclos y el archivo zzz tiene tres bytes, pero deberia tener 2 bytes como el orignal, donde puede estar el problema?

FILE *zzz=fopen(PathDest,"wb");//Abrir para escribir en fin de archivo
FILE *src=fopen(Source ,"rb");//Abrir para leer

void *databuffer = malloc(datasize);
void *datapos = malloc(possize);
unsigned int pos=0,counter=0,flag=FALSE;
fseek(zzz,0,0);
while (!feof(src))
{
fread(databuffer,datasize,sizeof(char),src);

if(memcmp(databuffer,data,datasize)==0)
{
pos=(ftell(src))-1;
memcpy(datapos,&pos,possize);
fwrite(datapos,possize,sizeof(char),zzz);
flag=TRUE;
++counter;
}
}
printf("%i",counter);

fflush(zzz);
fclose(zzz);
fclose(src);

return flag;
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:FILE

Publicado por Tom (619 intervenciones) el 23/02/2010 12:19:24
Tienes que usar feof() __después__ de fread().
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