|
#include<stdio.h> #include<string.h> #include<limits.h> struct strcuentas { long int nro_cuenta; long int fecha; int codigo; char tipocuenta; long int saldo; }; void leer_fplazo (FILE *fplazo, struct strcuentas *rplazo); void leer_fotras (FILE *fotras, struct strcuentas *rotras); void main() { FILE *fcuentas; FILE *fplazo; FILE *fotras; struct strcuentas rplazo,rotras; if((fplazo=fopen ("c:\\ficheros\\fplazo.d","rb"))==NULL) { puts("Error de apertura en el fichero fplazo"); goto fin; } if((fotras=fopen ("c:\\ficheros\\fotras.d","rb"))==NULL) { puts("Error de apertura en el fichero fotras"); goto fin; } if((fcuentas=fopen ("c:\\ficheros\\fcuentas.d","wb"))==NULL) { puts("Error de apertura en el fichero fcuentas"); goto fin; } leer_fplazo (fplazo,&rplazo); leer_fotras (fotras,&rotras); while (rplazo.codigo!=INT_MAX || rotras.codigo!=INT_MAX) { if (rplazo.codigo<=rotras.codigo) { fwrite ((char*)&rplazo,sizeof (rplazo),1,fcuentas); leer_fplazo (fplazo,&rplazo); } else { fwrite ((char*)&rotras,sizeof (rotras),1,fcuentas); leer_fotras (fotras,&rotras); } } fclose (fplazo); fclose (fotras); fclose (fcuentas); fin:puts ("Fin del programa"); } void leer_fplazo (FILE *fplazo, struct strcuentas *rplazo) { fread ((char*)rplazo,sizeof(struct strcuentas),1,fplazo); if (feof (fplazo)) rplazo->codigo=INT_MAX; } void leer_fotras(FILE *fotras, struct strcuentas *rotras) { fread ((char*)rotras,sizeof (struct strcuentas),1,fotras); if (feof (fotras)) rotras->codigo=INT_MAX; } http://www.geocities.com/aprogramar/c11.htm
|