Backup de dados em C

preciso de um help com um código. Fiz quase todo mas não consegui terminar na parte que pedia o backup e a restauração de dados.Logo após postarei o código.( as que estão com // é para fazer.)
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>

int main (){

int i,  id[1000] ;
int tempo = time(0);
char nome[1000][50] , email[1000][50] , sexo[1000][15] , endereco[1000][50];
double altura[1000];
int vacina[1000];

for(i = 0; i < 1000; i++){
	int continua;	
	printf("Deseja inserir um usuário  1 ou 0?");
	fflush(stdin);
	scanf("%d", &continua);
	 
	 if(continua == 0){
	   	printf("Pessoas cadastradas %d\n",i);
	 	break;
	 }
	 
	//ID
    srand(tempo);
    id[i] = rand();
    printf("%d\n",id[i]);
 

 	//NOME
 	printf("Me forneca o nome:");
 	fflush(stdin);
 	fgets(nome[i],50,stdin);
 
 	
 	//EMAIL
 	printf("Me forneca o email:");
 	fflush(stdin);
 	fgets(email[i],50,stdin);
		
	printf("\n%s", email[i]);
	
	//printf("%d", strchr(email[i], '@')==0);
	if(strchr(email[i], '@') == 0){
		printf("Email invalido\n");
		
		printf("Me forneca o email:");
 		fflush(stdin);
 		fgets(email[i],50,stdin);
	
	}
	else{
		printf("Email valido\n");
	}
	
	//SEXO
	printf("Me o sexo (Feminino, Masculino e Não declarar):");
 	fflush(stdin);
 	fgets(sexo[i],50,stdin);
	
	if(strcmp(sexo[i], "Feminino") == 0 && strcmp(sexo[i], "Masculino") == 0 && strcmp(sexo[i], "Feminino") == 0){
		printf("Sexo invalido\n");
		
		printf("Me o sexo (Feminino, Masculino e Não declarar):");
 		fflush(stdin);
 		fgets(sexo[i],50,stdin);
	}else{
		printf("Sexo valido");
	}
	
	
 	//ENDERECO
 	printf("Me forneca o endereco:");
 	fflush(stdin);
 	fgets(endereco[i],50,stdin);
	
	
	//ALTURA
	printf("Me forneca a altura:");
 	fflush(stdin);
 	scanf("%lf", &altura[i]);
 	
 	printf("%.2lf", altura[i]);
 	
 	if(altura[i] > 1.00 && altura[i] < 2.00){
		printf("Tá valido\n"); 		
	 }
	 else{
	 	printf("Altura invalida\n");
	 	
	 	printf("Me forneca a altura:");
 		fflush(stdin);
 		scanf("%lf", &altura[i]);
	 }
	 
	 //VACINA
	 printf("Tomou vacina ? 1 - sim\n0 - nao\n> ");
	 fflush(stdin);
	 scanf("%d", &vacina[i]);
	 
	 printf("%i");
}

int editar;
printf("Deseja editar algum usuário 1 ou 0? ");
fflush(stdin);
scanf("%d", &editar);//editar
//[i]
if(editar >= 1){
	int index, opcao;
	printf("Digite o index que você deseja editar: ");
	fflush(stdin);
	scanf("%d", &index); 

	printf("Qual informacao voce deseja alterar ?\n1: Nome\n2: Email\n3: Sexo\n4: Endereco\n5: Altura\n6: Vacina\n\nDigite o numero: ");
    fflush(stdin);
	scanf("%d", &opcao);

    switch (opcao)
    {
    case 1:
        printf("Me forneca o nome:");
 	    fflush(stdin);
 	    fgets(nome[index],50,stdin);
 
        break;
    
    case 2:
        printf("Me forneca o email:");
 	fflush(stdin);
 	fgets(email[index],50,stdin);
		
	printf("\n%s", email[i]);
	
	if(strchr(email[index], '@') == 0){
		printf("Email invalido\n");
		
		printf("Me forneca o email:");
 		fflush(stdin);
 		fgets(email[index],50,stdin);
	
	}
	else{
		printf("Email valido\n");
	}

        break;
    case 3:
        printf("Me o sexo (Feminino, Masculino e Não declarar):");
        fflush(stdin);
        fgets(sexo[index],50,stdin);
        
        if(strcmp(sexo[index], "Feminino") == 0 && strcmp(sexo[index], "Masculino") == 0 && strcmp(sexo[index], "Feminino") == 0){
            printf("Sexo invalido\n");
            
            printf("Me o sexo (Feminino, Masculino e Não declarar):");
            fflush(stdin);
            fgets(sexo[index],50,stdin);
        }else{
            printf("Sexo valido");
        }
        break;
    
    case 4:
        printf("Me forneca o endereco:");
 	    fflush(stdin);
 	    fgets(endereco[index],50,stdin);
        break;

    case 5:
        printf("Me forneca a altura:");
 	fflush(stdin);
 	scanf("%lf", &altura[index]);
 	
 	printf("%.2lf", altura[index]);
 	
 	if(altura[index] > 1.00 && altura[index] < 2.00){
		printf("Tá valido\n"); 		
	 }
	 else{
	 	printf("Altura invalida\n");
	 	
	 	printf("Me forneca a altura:");
 		fflush(stdin);
 		scanf("%lf", &altura[index]);
	 }
        break;
    
    case 6:
        printf("Tomou vacina ? 1 - sim\n0 - nao\n> ");
	    fflush(stdin);
	    scanf("%d", &vacina[index]);
	     printf("%i");
       break;

    default:
        printf("\nOpcao invalida\n");
        break;
    } 

    printf("%s", endereco[0]);

}


//excluir


//busque



//imprima - Daniel 
/*char nome[1000][50] , email[1000][50] , sexo[1000][15] , endereco[1000][50];
double altura[1000];
int vacina[1000];*/
for(i = 0; i < 1000; i++){
	if (vacina[i] == 1)
	{
		printf("Usuario %d:\nNome:%s\nEmail:%s\nsexo:%s\nEndereco:%s\naltura:%.2lf\nVacina:Sim",i,nome[i], email[i], sexo[i] , endereco[i],altura[i]);
	}else if (vacina[i] == 0)
	{
		printf("Usuario %d:\nNome:%s\nEmail:%s\nsexo:%s\nEndereco:%s\naltura:%.2lf\nVacina:Nao",i,nome[i], email[i], sexo[i] , endereco[i],altura[i]);
	}
	
}



//backup



//restauracao

}