Leer, escribir valor de variables a archivo
Creo que ya te mande un mensaje sobre esto. Este otro aclara bastante más mi duda y la hace, espero más fácil de resolver:
He encontrado este código que hace exactamente lo que yo quiero hacer, salvo que necesito pasar a la función leer_datos el valor de una estructura:criatura. X y criatura. Y en vez de x:
void leer_datos(char *nombre,int elementos,float *x,float *y){
//abrir archivo
ifstream in(nombre,ios::binary);
//leer datos
for(int elem=0;elem<elementos;elem++){
in.read( (char *)&x[elem],sizeof(float) );
in.read( (char *)&y[elem],sizeof(float) );
}
}
y la funcion main:
main(){
int elementos=20;
float x[elementos],y[elementos];
leer_datos("fichero.dat",elementos,x,y);
}
Asi que en vez de x e y, que tengo que pasar a leer_datos?Valdria esto?
leer_datos("fichero.dat",elementos,criatura) y modificar leer_datos para que solo coja tres argumentos y dentro hacer:
for....
in.read( (char *)&criatura[elem].X,sizeof(float) );
in.read( (char *)&criatura[elem].Y,sizeof(float) );
No creo que funcione.(Ahora no tengo el programa aquí así que no puedo probarlo).
He encontrado este código que hace exactamente lo que yo quiero hacer, salvo que necesito pasar a la función leer_datos el valor de una estructura:criatura. X y criatura. Y en vez de x:
void leer_datos(char *nombre,int elementos,float *x,float *y){
//abrir archivo
ifstream in(nombre,ios::binary);
//leer datos
for(int elem=0;elem<elementos;elem++){
in.read( (char *)&x[elem],sizeof(float) );
in.read( (char *)&y[elem],sizeof(float) );
}
}
y la funcion main:
main(){
int elementos=20;
float x[elementos],y[elementos];
leer_datos("fichero.dat",elementos,x,y);
}
Asi que en vez de x e y, que tengo que pasar a leer_datos?Valdria esto?
leer_datos("fichero.dat",elementos,criatura) y modificar leer_datos para que solo coja tres argumentos y dentro hacer:
for....
in.read( (char *)&criatura[elem].X,sizeof(float) );
in.read( (char *)&criatura[elem].Y,sizeof(float) );
No creo que funcione.(Ahora no tengo el programa aquí así que no puedo probarlo).
1 respuesta
Respuesta de raguin
1