Ir para conteúdo
Fórum Script Brasil
  • 0

Validar Dados


Guest Marcus Vinícius de M. Silva

Pergunta

Guest Marcus Vinícius de M. Silva

Olá pessoal, preciso de uma função que não deixe eu cadastrar um aluno mais de uma vez!!!

A minha função cadastrar está ai em baixo, alguém pode me ajudar???

// função - Cadastrar Dados de um aluno

// parâmetros - nenhum

// retorno - nenhum

void cadastraAluno(void)

{

infoAluno Aluno;

FILE *arq_Aluno;

clrscr();

printf("%50s\n\n\n","CADASTRAR ALUNO");

printf("Nome do Aluno:");

fflush(stdin);

gets(Aluno.nomeAluno);

printf("Matricula do Aluno: ");

gets(Aluno.matriculaAluno);

printf("Nome da Mae: ");

gets(Aluno.nomeMaeAluno);

printf("Data de Ingresso:(dd/mm/aaaa):");

scanf("%d%d%d",&Aluno.dataIngresso[0],&Aluno.dataIngresso[1],

&Aluno.dataIngresso[2]);

arq_Aluno = fopen("Projeto Final_DadosAlunos.txt","ab");

if(arq_Aluno == NULL)

{

printf("ERRO NA ABERTURA DO ARQUIVO\n");

}

else

{

if(fwrite(&Aluno,sizeof(infoAluno),1,arq_Aluno)==1)

{

printf("Sucesso\n");

}

else

{

printf(" Erro ao gravar dados \n");

}

fclose(arq_Aluno);

}

}

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

antes de inserir o dado no arquivo voce precisa compara-lo com todos os outros dados que já estão armazenados,

veja só no trecho abaixo:

     arq_Aluno = fopen("Projeto Final_DadosAlunos.txt","ab"); //o parametro "a" indica que voce vai anexar algo no fim do arquivo, como antes voce precisa passar por todo arquivo antes de inserir substitua o "a" por "r" ou use a funcao rewind(arq_Aluno); que faz o ponteiro do arquivo voltar ao inicio.

     if(arq_Aluno == NULL)
     {
           printf("ERRO NA ABERTURA DO ARQUIVO\n");
     }

     else
    {
          //aqui voce deve comparar seus dados com todo o conteudo do arquivo
          //use a funcao fread até encontrar EOF, voce pode usar o retorno da funcao para te ajudar
          //a funcao fread retorna o numero de elementos que leu "terceiro parametro" em caso de sucesso.
          //so depois de passar por todos elementos voce pode inserir os dados, como abaixo

          if(fwrite(&Aluno,sizeof(infoAluno),1,arq_Aluno)==1)
         {
               printf("Sucesso\n");
         }
.
.
.

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Visitante

antes de inserir o dado no arquivo voce precisa compara-lo com todos os outros dados que já estão armazenados,

veja só no trecho abaixo:

     arq_Aluno = fopen("Projeto Final_DadosAlunos.txt","ab"); //o parametro "a" indica que voce vai anexar algo no fim do arquivo, como antes voce precisa passar por todo arquivo antes de inserir substitua o "a" por "r" ou use a funcao rewind(arq_Aluno); que faz o ponteiro do arquivo voltar ao inicio.

     if(arq_Aluno == NULL)
     {
           printf("ERRO NA ABERTURA DO ARQUIVO\n");
     }

     else
    {
          //aqui voce deve comparar seus dados com todo o conteudo do arquivo
          //use a funcao fread até encontrar EOF, voce pode usar o retorno da funcao para te ajudar
          //a funcao fread retorna o numero de elementos que leu "terceiro parametro" em caso de sucesso.
          //so depois de passar por todos elementos voce pode inserir os dados, como abaixo

          if(fwrite(&Aluno,sizeof(infoAluno),1,arq_Aluno)==1)
         {
               printf("Sucesso\n");
         }
.
.
.

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Visitante

Desculpa mas estou com dificuldade em aplicar a dica...

Será que alguém poderia me dizer como eu vou fazer pra "varrer" o meu arquivo e verificar usando a função fread????

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...