#include <stdio.h>
#include <stdlib.h>
#include <string.h>
const char* PERSON_FORMAT_IN = "{\"name\": \"%[^,]\", \"age\": %d, \"gender\": \"%c\"}";
const char* PERSON_FORMAT_OUT = "{\"name\": \"%s\", \"age\": %d, \"gender\": \"%c\"}";
typedef struct {
char name[20];
int age;
char gender;
} Person;
int main(int argc, char* argv[]) {
Person p1 = {
.name = "Andrew",
.age = 22,
.gender = 'M'
};
Person p2;
FILE* file = fopen("people.dat", "w+");
if (file == NULL) {
return 1;
}
fprintf(file, PERSON_FORMAT_OUT, p1.name, p1.age, p1.gender);
fseek(file, 0, SEEK_SET);
fscanf(file, PERSON_FORMAT_IN, p1.name, &p1.age, &p1.gender);
return 0;
}