que - Escribiendo Estructuras a un archivo en c
leer un archivo y guardarlo en un arreglo c (1)
Es posible escribir una estructura completa en un archivo
ejemplo:
struct date {
char day[80];
int month;
int year;
};
Es posible escribir una estructura completa en un archivo
Su pregunta es en realidad escribir instancias de estructura en el archivo.
- Puede utilizar la función
fwrite
para lograr esto. - Necesitas pasar la referencia en el primer argumento.
- tamaño de cada objeto en el segundo argumento
- Número de tales objetos para escribir en el 3er argumento.
- Archivo puntero en 4to argumento.
- No olvides abrir el archivo en
binary mode
. - Puedes leer objetos desde un archivo usando fread.
Tenga cuidado con el lenguaje endiano cuando esté escribiendo / leyendo en sistemas little endian y leyendo / escribiendo en sistemas big endian y viceversa. Leer how-to-write-endian-agnostic-c-c-code
struct date *object=malloc(sizeof(struct date)); strcpy(object->day,"Good day"); object->month=6; object->year=2013; FILE * file= fopen("output", "wb"); if (file != NULL) { fwrite(object, sizeof(struct date), 1, file); fclose(file); }
Puedes leerlos de la misma manera .... usando fread
struct date *object2=malloc(sizeof(struct date));
FILE * file= fopen("output", "rb");
if (file != NULL) {
fread(object2, sizeof(struct date), 1, file);
fclose(file);
}
printf("%s/%d/%d/n",object2->day,object2->month,object2->year);