Ir para conteúdo
Fórum Script Brasil

Davi_c

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Sobre Davi_c

Davi_c's Achievements

0

Reputação

  1. Estou criando um login em C que precisa ser capaz de guardar múltiplos usuários e fazer com que eles possam logar. Em dado momento percebi que o fopen com o "wb" reescreve os usuários anteriores, mantendo só um. Há a possibilidade de abrir ele com a+, mas se eu fizer isso a minha função login não vai ser mais capaz de permitir a ninguém logar. Sendo assim, minha decisão foi: abrir um arquivo para cada usuário, e depois faço com que minha função login olhe arquivo por arquivo vendo se as credenciais de acesso do usuário batem com as de qualquer arquivo. O problema é que não consigo fazer a função fopen abrir diferentes arquivos utilizando a variável i. Tentei de diversas maneiras, mas aparentemente a função simplesmente não comporta mais argumentos do que "arquivo_nome", "wb". Alguém tem uma ideia de como fazer isso? Abaixo, minha função cadastrar. void cadastrar_user() { FILE *fp; struct usuario_t usuario; int i = 0; memset(&usuario,0,sizeof(struct usuario_t)); printf("\n ------Cadastro de usuario------"); printf("\n\n Insira um login> "); scanf("%s", &usuario.login); printf("\n Insira uma senha> "); scanf("%s", &usuario.senha); i++; fp = fopen("registro", "wb"); fwrite(&usuario, sizeof(struct usuario_t), 1, fp); fclose(fp); printf("\n"); printf("\n ---- Usuario cadastrado, redirecionando para login! ----"); login(); Abaixo, minha função login: int login(){ FILE *fp; struct usuario_t usuario; fp = fopen("login","rb"); memset(&usuario, 0, sizeof(struct usuario_t)); fread(&usuario, sizeof(struct usuario_t), 1, fp); fclose(fp); if(!strcmp("", usuario.login)){ printf("\n ----Cadastro não encontrado, redirecionando para cadastro!----\n"); cadastrar_user();} else { char login[LOGIN_MAX]; char senha[SENHA_MAX]; printf("\n Login> "); scanf("%s", &login); printf(" Senha> "); scanf("%s", &senha); if (!strcmp(login, usuario.login) && !strcmp(senha, usuario.senha)) { printf("\n Bem vindo %s!\n", usuario.login); menu_crud(); return 0; } else { printf(" \n----Usuario ou senha invalidos!----\n"); printf("\n Tente novamente! Redirecionando para a pagina inicial\n\n"); main(); } } return 0; }
×
×
  • Criar Novo...