c – Tenho um menu trabalhando um conjunto de variáveis de uma lista, porém, não consigo trabalhar com o conjunto, apenas com um dado por vez

typedef struct NO{
    int dado;
    NO* prox;
}NO;

typedef struct FILA{
    NO* inicio;
    NO* fim;
} FILA;

FILA *f;

void enfileira(int dado){
    NO* ptr = (NO *) malloc(sizeof(NO));
    ptr->dado = dado;
    ptr->prox = NULL;
    if(f->inicio == NULL)
        f->inicio = ptr;
    else
        f->fim->prox = ptr;
    f->fim = ptr;
}

int desenfileira(){
    NO* ptr = f->inicio;
    int dado;
    if(ptr != NULL){
        f->inicio = ptr->prox;
        ptr->prox = NULL;
        dado = ptr->dado;
        free(ptr);
        return dado;
    }else{
        printf("Erro!n");
        system("pause");
        return -1;
    }
}

 void imprimir(){
    NO *ptr = f->inicio;
    if(ptr == NULL){
        printf("A fila está vazia.n");
        return;
    } else {
        printf(" Início --> n ");
        while(ptr != NULL){
            printf("%d n ", ptr->dado);
            ptr = ptr->prox;
        }
        printf("<-- Fim ");
    }
 }
 
 void filavazia() {
    f->inicio = NULL;
    f->fim = NULL;
}
 
 void menu(){
    printf("n             -----MENU-----n");
    printf("Digite 1 para inserir um elemento na fila.n");
    printf("Digite 2 para remover um elemento da fila.n");
    printf("Digite 3 para esvaziar a fila.n");
    printf("Digite 0 para encerar.n");
 }
 
 struct informacao{
    int raAluno;
    char nomeArqv(20);
    int nome_Arq = atoi(nomeArqv);
    char extArqv(10);
    int ext_Arq = atoi (extArqv);
    int mtrclProf;
 };
 
 int main(){
    setlocale(LC_ALL, "Portuguese");
    
    int numDigitado;
    int marcador = 0;
    struct informacao dado;
    
    f = (FILA *) malloc(sizeof(FILA));
    f->inicio = NULL;
    f->fim = NULL;
    do{
        imprimir();
        menu();
        scanf("%d", &numDigitado);
        fflush(stdin);
        system("cls");
    switch(numDigitado){
        case 1: //Inserir elementos na fila
            if(tamanho == 6-1){
                printf("Fila cheia n");
            }
            printf("Informe o RA do aluno:n ");
            scanf("%d", &dado.raAluno);
            fflush(stdin);
            enfileira(dado.raAluno);
            printf("Informe o nome do arquivo:n ");
            scanf("%d", &dado.nome_Arq);
            fflush(stdin);
            enfileira(dado.nome_Arq);
            printf("Informe a extenção do arquivo:n ");
            scanf("%d", &dado.ext_Arq);
            fflush(stdin);
            enfileira(dado.ext_Arq);
            printf("Informe a matrícula do professor:n ");
            scanf("%d", &dado.mtrclProf);
            fflush(stdin);
            enfileira(dado.mtrclProf);
            
            marcador++;

Quero guardar este grupo de informações na fila e quando for desenfileirar, não quero que cada item do grupo seja ‘apagado’ por vez e sim o grupo inteiro.