[C con Clase] Una pequeña duda con los ficheros

Marcos Collado Martín marquitos.mcm en gmail.com
Mie Abr 25 17:55:54 CEST 2012


Gracias, la verdad, que fallo mas tonto que he cometido ... si esto se da
en 1º de primaria jeje.
Otra pregunta, es posible hacer esta funcion para varias estructuras, no
solo stIndice? Esque no se me ocurre nada "razonable"

void Intercambia(FILE <http://c.conclase.net/librerias/?ansitip=FILE>
*fi, long iz, long de)
{
   stIndice reg1, reg2;

   fseek <http://c.conclase.net/librerias/?ansifun=fseek>(fi,
iz*sizeof(stIndice), SEEK_SET
<http://c.conclase.net/librerias/?ansimac=SEEK_SET>);
   fread <http://c.conclase.net/librerias/?ansifun=fread>(&reg1,
sizeof(stIndice), 1, fi);
   fseek <http://c.conclase.net/librerias/?ansifun=fseek>(fi,
de*sizeof(stIndice), SEEK_SET
<http://c.conclase.net/librerias/?ansimac=SEEK_SET>);
   fread <http://c.conclase.net/librerias/?ansifun=fread>(&reg2,
sizeof(stIndice), 1, fi);
   fseek <http://c.conclase.net/librerias/?ansifun=fseek>(fi,
iz*sizeof(stIndice), SEEK_SET
<http://c.conclase.net/librerias/?ansimac=SEEK_SET>);
   fwrite <http://c.conclase.net/librerias/?ansifun=fwrite>(&reg2,
sizeof(stIndice), 1, fi);
   fseek <http://c.conclase.net/librerias/?ansifun=fseek>(fi,
de*sizeof(stIndice), SEEK_SET
<http://c.conclase.net/librerias/?ansimac=SEEK_SET>);
   fwrite <http://c.conclase.net/librerias/?ansifun=fwrite>(&reg1,
sizeof(stIndice), 1, fi);
}


Un saludo y gracias de antemano ^^
El 24 de abril de 2012 23:49, Salvador Pozo <salvador en conclase.net>escribió:

> El pasado 2012-04-24 19:16:21, Marcos escribió:
>
> M> En la búsqueda binaria, a ver me explico:
> M> Pongo el ejemplo de que tenemos en la variable sup = 10, entonces
> resuelvo
> M> la ecuación para averiguar n -> n = 0 + (10 - 0) /2 = 5, bien ahora
> tengo n
> M> = 5, pero resulta que en ese registro no está lo que busco y ese
> teléfono
> M> es menor que el teléfono que yo he puesto, entonces a inf le daríamos el
> M> valor de n + 1 ( en nuestro caso 6) y vuelvo a pasar por la ecuación y
> lo
> M> que pasa es que si la hago: n = 6 + ( 10 - 6) / 2 = 5, es otra vez 5
> porque
> M> sí sumo y resto el mismo número al final queda el mismo número, no se
> si me
> M> explico.
>
> Hola:
>
> Estás cometiendo un error al evaluar la expresión, que no es una ecuación.
>
> n = 6 + (10-6)/2;
>
> Primero se evalúa el paréntesis:
>
> n = 6 + 4/2;
>
> A continuación la división, que tiene mayor prioridad que la suma:
>
> n = 6 + 2;
>
> Por último la suma:
>
> n = 8;
>
> Como ves, el resultado es que se asigna a n el valor 8, no 5.
>
> No pienses en las expresiones C/C++ como ecuaciones, son expresiones, y
> para evaluarlas se siguen las reglas de precedencia de C.
>
> Hasta pronto.
>
> --
> Salvador Pozo (Administrador)
> mailto:salvador en conclase.net
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20120425/0e630af0/attachment-0001.html>


Más información sobre la lista de distribución Cconclase