Preciso criar uma função que sirva para fazer login de usuários num programinha que estou desenvolvendo. Estou programando em C, não C++, sem orientação à objetos. A parte do cadastro eu já consegui fazer. Aoós o cadastro, é gravado um arquivo com o nome do usuário, e dentro dele, a senha.
Exemplo:
nome: fulano
senha: 12345
arquivo: fulano.txt, conteúdo do arquivo: *123456
Eu sei que é um método tosco, mas num momento, é só o que eu preciso. A parte difícil é a leitura do arquivo, para identificar a senha e usuário em cada arquivo na hora do login. Cada arquivo fica com o nome de quem criou ("fulano.txt"), mas não sei como fazer pra procurar uma determinada palavra no arquivo e usá-la em outra variável, até deixei os marcador (* para senha), mas estou com dificuldades para implementar isso. Alguém pode me ajudar?
O código-fonte, comentado, por enquanto, é esse:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include <conio.c>
#include <locale.h>
char opl;
char usr[50],senha[10];
FILE *ArqUsr;
int main()
{
setlocale(LC_ALL, "Portuguese");
do{
textcolor(WHITE);clrscr();
gotoxy(26,2); printf("*---------------------------*");
gotoxy(26,3); printf("|******CRIPTOFAGO-LOGIN*****|");
gotoxy(26,4); printf("*---------------------------*");
gotoxy(26,5); printf("| 1: Fazer login |");
gotoxy(26,6); printf("| |");
gotoxy(26,7); printf("| 2: Fazer cadastro |");
gotoxy(26,8); printf("| |");
gotoxy(26,9); printf("| 3: Voltar |");
gotoxy(26,10); printf("| Opção: |");
gotoxy(26,11); printf("*---------------------------*");
gotoxy(52,10); opl=getch();
switch(opl)
{
case '1'://login
{
gotoxy(3,16);printf("Digite seu nome de usuário: ");gets(usr);//Usuário digita o nome com que quer se logar
gotoxy(3,17);printf("Digite sua senha: ");textcolor(BLACK);gets(senha);textcolor(WHITE);//usuário informa sua senha
if(ArqUsr!=NULL)//se o arquivo com nome e senha não for inexistente
{
/*
Aqui está a parte difícil: Como eu faço para procurar uma
palavra específica no arquivo (a senha), e compará-la com a senha
informada pelo usuário?
*/
}
else
{
gotoxy(3,16);printf("Nenhum usuário cadastrado!");break;
}
}
case '2'://cadastro
{
textbackground(BLACK); textcolor(WHITE);
gotoxy(3,16);printf("Digite seu nome: ");gets(usr);//Usuário insere o nome com que quer ser cadastrado
gotoxy(3,17);printf("Digite sua senha: ");textcolor(BLACK);gets(senha);//usuário digita sua senha
ArqUsr=fopen(usr,"a");//fazer um arquivo com o nome do usuário
textcolor(WHITE);gotoxy(3,18);printf("Usuário cadastrado com sucesso!");
fprintf(ArqUsr,"*%s",senha);//grava no arquivo a senha do usuário, antecedida pelo caractere *
fclose(ArqUsr);//fecha o arquivo
getch();
}
case '3': opl=0;break;
default : printf("\a");break;
}
}while (opl!=0);
}
Pergunta
Dark Lotus
Boa tarde à todos.
Preciso criar uma função que sirva para fazer login de usuários num programinha que estou desenvolvendo. Estou programando em C, não C++, sem orientação à objetos. A parte do cadastro eu já consegui fazer. Aoós o cadastro, é gravado um arquivo com o nome do usuário, e dentro dele, a senha.
Exemplo:
nome: fulano
senha: 12345
arquivo: fulano.txt, conteúdo do arquivo: *123456
Eu sei que é um método tosco, mas num momento, é só o que eu preciso. A parte difícil é a leitura do arquivo, para identificar a senha e usuário em cada arquivo na hora do login. Cada arquivo fica com o nome de quem criou ("fulano.txt"), mas não sei como fazer pra procurar uma determinada palavra no arquivo e usá-la em outra variável, até deixei os marcador (* para senha), mas estou com dificuldades para implementar isso. Alguém pode me ajudar?
O código-fonte, comentado, por enquanto, é esse:
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
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.