Hi! I would like to know, if there is a way to remove just one line from a file. I would like to implement this new function in my program. What I have until now is:

Code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

struct contatos
{
    char nome[50];
    char data[11];
    char sexo;
};

void CriarArquivo(FILE *point, char *nome_arq);
void AtualizarArquivo(FILE *point, char *nome_arq, struct contatos *lc);
void ImprimirArquivo(FILE *point, char *nome_arq);
void Buscar(FILE *point,char *nome_arq);
int Menu(void);


int main(void)
{
    FILE *fp=NULL;
    char arq[32]={'\0'};
    struct contatos lista[50];
    int escolha;
    
    printf("Digite o nome do arquivo: ");
    scanf("%s",arq);
    printf("\n");    
    
   
    for( ; ; )
    {
        escolha = Menu();
        switch(escolha)
        {
            case 1: CriarArquivo(fp,arq);
                break;
            case 2: AtualizarArquivo(fp,arq,lista);
                break;
            case 3: ImprimirArquivo(fp,arq);
                break;
            case 4: Buscar(fp,arq);
                break;
            case 5: exit(0);
        }
    }
    return 0;
}

//Função: CriarArquivo
//Cria um novo arquivo no diretório corrente com o nome especificado pelo usuário
void CriarArquivo(FILE *point, char *nome_arq)
{
    if((point = fopen(nome_arq,"w")) == NULL)
    {
        printf("Erro ao criar o arquivo %s", nome_arq);
        exit(0);
    }
    else printf("Arquivo criado com sucesso!\n");
    fclose(point);
}
   
//Função: AtualizarArquivo
//Abre o arquivo especificado em modo de atualização
void AtualizarArquivo(FILE *point, char *nome_arq, struct contatos *lc)
{
    char resp,c,conf;
    int i,j=0;
    
    if((point = fopen(nome_arq,"a")) == NULL)
    {
        printf("Erro ao abrir o arquivo %s", nome_arq);
        exit(0);
    }
    else
    {
        printf("Arquivo aberto com sucesso!\n");
        printf("Deseja adicionar um novo contato?(S/N)  ");
        //getchar();
        scanf("%c", &resp);
        while(resp == 's' || resp == 'S')
        {
            //Lê o nome do contato:
            getchar();
            i=0;
            printf("Digite o nome do contato: ");
            while((c=getchar())!='\n')
            {
                if(c==' ') lc[j].nome[i] = '_';
                else lc[j].nome[i] = c;
                i++;
            }
            lc[j].nome[i] = '\0';
            //Lê a data de nascimento do contato
            i=0;
            printf("Digite a data de nascimento do contato: ");
            while((c=getchar())!='\n')
            {
                lc[j].data[i] = c;
                i++;
            }
            lc[j].data[i] = '\0';
            //Lê o sexo do contato
            printf("Digite o sexo do contato(M/F): ");
            scanf("%c", &lc[j].sexo);
            //Confirmar dados
            getchar();
            printf("Por favor confirme os dados do contato:\n");
            printf("%s\n", lc[j].nome);
            printf("%s\n", lc[j].data);
            printf("%c\n", lc[j].sexo);
            printf("CONFIRMAR:(S/N) ");
            scanf("%c", &conf);
            if(conf=='s' || conf=='S')
            {
                fprintf(point,"%s#",lc[j].nome);
                fprintf(point,"%s#",lc[j].data);
                fprintf(point,"%c?\n",lc[j].sexo);
                j++;
                getchar();
                printf("Deseja adicionar outro contato?(S/N) ");
                scanf("%c", &resp);
            }
            else
            {
                getchar();
                printf("Deseja refazer o contato?(S/N) ");
                scanf("%c",&resp);
            }
        }
    }
    fclose(point);
}

//Função: ImprimirArquivo
//Imprime na saída padrão os dados do arquivo
void ImprimirArquivo(FILE *point, char *nome_arq)
{
    char tela[sizeof(struct contatos)];
    int i,j=1;
    system("clear");
    if((point = fopen(nome_arq,"r")) == NULL)
    {
        printf("Erro ao abrir o arquivo");
        exit(0);
    }
    else
    {
        printf("Arquivo aberto com sucesso!\n");
        while((fscanf(point,"%s",tela))!=EOF)
        {
            printf("Contato %d:\n",j);
            i=0;
            while(tela[i]!='\0')
            {
                if(tela[i] == ' ') printf(" ");
                if(i==0 ||tela[i-1]=='#') printf("\t");
                if(tela[i]=='#') printf("\n");
                else 
                {
                    if(tela[i]=='_' || tela[i]=='?') printf(" ");
                    else printf("%c",tela[i]);
                }
                i++;
            }
            printf("\n");
            j++;
        }
    }
    fclose(point);
}

//Função: Buscar
//Realiza a busca do contato de acordo com o nome informado
void Buscar(FILE *point,char *nome_arq)
{
    int i=0, achei=0, j=0;
    char tela[sizeof(struct contatos)],busca[50],c;
    
    if((point=fopen(nome_arq,"r"))==NULL)
    {
        printf("Erro ao abrir o arquivo\n");
        exit(0);
    }
    system("clear");
    printf("Arquivo aberto com Sucesso!\n");
    //Define o nome que será procurado
    printf("Nome para Busca: ");
    while((c=getchar())!='\n')
    {
        if(c==' ') busca[i]='_';
        else  busca[i] = c;
        i++;
    }
    busca[i] = '\0';
    while((fscanf(point,"%s",tela))!=EOF)
    {   
        j=0;                  
        while(j<strlen(busca))
        {
            if(tela[j]==busca[j]) achei = 1;
            else
            {
                achei = 0;
                break;
            }
            j++;
        }
        if(achei==1)
        {
            i=0;
            while(tela[i]!='?')
            {
                if(i==0) printf("\t");
                if(tela[i]=='#') printf("\n\t");
                else 
                {
                    if(tela[i]=='_') printf(" ");
                    else printf("%c",tela[i]);
                }
                i++;
            }
            printf("\n");
        }
    }
    if(achei==0)printf("Nenhum registro encontrado!\n");    
    fclose(point);
}
    
//Função: Menu
//Imprime na tela as opções do menu
int Menu(void)
{
    int c=0;
    do{
        printf("--- MENU ---\n");
        printf("\t1- Criar Novo Arquivo\n");
        printf("\t2- Adicionar Informaçoes ao Arquivo\n");
        printf("\t3- Imprimir o Arquivo\n");
        printf("\t4- Buscar no Arquivo\n");
        printf("\t5- Sair\n");
        printf("Make your choice: ");
        scanf("%d",&c);
    }while(c<=0 || c>5);
    getchar();
    return c;
}