[C con Clase] fscanf

dani ddagnino en gmail.com
Mie Mar 14 16:49:47 CET 2007


Hola a todos,
estoy probando la función fscanf pero no consigo que me funcione si alguien me puede ayudar se lo agradeceré. Me he echo el programa siguiente que me parecía bastante simple pero que no se porque no funciona,

#include <stdio.h>

int main (){
int ir,iz,nr=2,nz=2;
double **rhob,**rhof;
FILE *in_dat,*out_dat;

rhob=new double *[nr];
rhof=new double *[nr];
for (ir=0;ir<nr;ir++){
    rhob[ir]=new double [nz];
    rhof[ir]=new double [nz];
    }

in_dat=fopen("dens_in.dat","r");
if (in_dat==NULL){printf("ERROR: dens_in.dat");goto e0;}
for (ir=0;ir<nr;ir++){
    for (iz=0;iz<nz;iz++){
        fscanf(in_dat,"% e % e\n",&rhob[ir][iz],&rhof[ir][iz]);
        }
    fscanf(in_dat,"\n");
    }
fclose(in_dat);

out_dat=fopen("dens_out.dat","w");
if (out_dat==NULL){printf("ERROR: dens_out.dat");goto e0;}
for (ir=0;ir<nr;ir++){
    for (iz=0;iz<nz;iz++){
        fprintf(out_dat,"% e % e\n",rhob[ir][iz],rhof[ir][iz]);
        }
    fprintf(out_dat,"\n");
    }
fclose(out_dat);

e0: 
    getchar();
    return 0;
}

en el archivo dens_in.dat hay esto:
 1.111111e+000  0.000000e+000
 1.111111e+000  2.222222e+000

 3.333333e+000  0.000000e+000
 3.333333e+000  2.222222e+000
Un saludo.
Dani.


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