Antes de nada, el codigo del progrma:
#include <stdio.h> #include <string.h> #include <stdlib.h>
main(){ struct{ char nombre[40]; int edad; char lugarResidencia[100]; }persona; FILE *fichero; char linea[80]; printf("Introduzca nombre: "); gets(persona.nombre); printf("Introduzca edad: "); scanf("%d",&persona.edad); getchar(); printf("Lugar de residencia: "); gets(persona.lugarResidencia);
fichero=fopen("gente.dat","w"); fputs(persona.nombre,fichero); fputs(persona.lugarResidencia,fichero); fprintf(fichero,"%d",&persona.edad); fclose(fichero); fichero=fopen("gente.dat","r"); fgets(linea,strlen(persona.nombre)+1,fichero); printf("Se llama: "); puts(linea); fscanf(fichero,"%d",&persona.edad); printf("Tiene %d años",persona.edad); fgets(linea,strlen(persona.lugarResidencia)+1,fichero); printf("\nVive en: "); puts(linea); system("PAUSE"); fclose(fichero); }
El programa funciona perfecto, pero cuando abro el fichero, la variable edad del struct no la guarda bien, y se inventa el valor. ¿Alguien sabe cual puede ser el fallo? Gracias
|