Sistema consegue verificar o primeiro usuário cadastrado, os demais constam como usuário ou senha incorreta. Tentei criar um arquivo por usuário, o sistema entra com o usuário certo, mas os errados ele não faz nada. O que posso fazer?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include <conio.h>
#include <locale.h>
char opl;
char string1[50],string2[10], nome[100], senha[10];
FILE *ArqUsr;
int main()
{
setlocale(LC_ALL, "Portuguese");
do{
printf("\n*---------------------------*");
printf("\n| LOGIN |");
printf("\n*---------------------------*");
printf("\n| 1: Fazer login |");
printf("\n| |");
printf("\n| 2: Fazer cadastro |");
printf("\n| |");
printf("\n| 3: Voltar |\n");
printf("\n| |\n");
printf("\n*---------------------------*\n");
opl=getch();
switch(opl)
{
case '2'://cadastro
{
printf("Digite seu nome: ");gets(string1);//Usuário insere o nome com que quer ser cadastrado
printf("Digite sua senha: ");gets(string2);//usuário digita sua senha
ArqUsr=fopen("Usuarios.txt","a");//fazer um arquivo com o nome do usuário
printf("Usuário cadastrado com sucesso!");
fprintf(ArqUsr,"\n%s", string1);
fprintf(ArqUsr,"\n%s", string2);//grava no arquivo a senha do usuário, antecedida pelo caractere
fprintf(ArqUsr,"\n");
fclose(ArqUsr);//fecha o arquivo
getch();
return main();
}
case '1'://login
{
ArqUsr = fopen("Usuarios.txt","r");//abre o arquivo com o nome do usuário
if (ArqUsr == NULL) {
printf("\nNenhum usuário cadastrado");
return main();
}
printf("\n\tNOME........: ");
scanf("%s", nome);
//Tentei fazer com fgets, mas da erro quando uso no while, então
//resolvi deixar o scanf mesmo
printf("\n\tSENHA........: ");
scanf("%s", senha);
printf("\n");
// printf("\n%s %s", nome, senha); //testar o que foi digitado pelo usuario
printf("\n");
while ((fscanf(ArqUsr, "%s%s", string1, string2)) == 2) {
if (!strcmp(string1, nome) && !strcmp(string2, senha)) {
printf("\nBem-Vindo!\n");
} else {
printf("\nSeu login ou senha estão errados!");
return main();
}
}
fclose(ArqUsr);
}
case '3': opl=0;break;
default : printf("\a");break;
}
}while (opl!=0);
}