raizoku
(usa Ubuntu)
Enviado em 16/01/2017 - 11:02h
SarusKant escreveu:
Bom dia,
Esta aqui seu problema.
if(strcmp(vusuario,db[i].usuario)==0 && strcmp(vsenha,db[i].senha)==0)
Seu campo senha é do tipo inteiro, função strcmp é somente para caracteres, faça assim.
if(strcmp(vusuario,db[i].usuario)==0 && atoi(vsenha)==db[i].senha)
Também realize este tratamento, retire o breakline.
int i=0;
while(vsenha[i]) {
if(vsenha[i]==(char)13)
vsenha[i] = '\0';
i++;
}
i=0;
while(vusuario[i]) {
if(vusuario[i]==(char)13)
vusuario[i] = '\0';
i++;
}
Provável que isso resolva, seu problema.
--
Bruno Thomaz
Fiz os testes primeiramente assim, só alterando o strcmp como você citou encima, o código nao apresentou erros, porem parece nao ter entrado no if, compilei e executei para testar e não deu nenhuma resposta.
else if(opcao == 2) {
char vusuario[50];
char vemail[50];
int vsenha;
printf("Digite o Usuario: ");
fflush(stdin);
gets(vusuario);
printf("Digite a Senha: ");
scanf("%i", &vsenha);
fp = fopen("atv.bin","rb");
do {
vusuario;
vsenha;
for (i=0; i<(sizeof(db)/sizeof(menu)); i++ ) {
if(strcmp(vusuario,db[i].usuario)==0 && atoi(vsenha)==db[i].senha){
puts("Usuario e Senha correto");
session = db[i];
}
}
if(session.id<1)
puts("Usuario ou senha invalido");
} while (session.id <1);
fclose(fp);
}
Testei o tratamento no lugar do break, deu o seguinte erro "[Warning] passing argument 1 of 'atoi' makes pointer from integer without a cast", testei transformando a senha para um char igual o usuario, funcionou só que tambem não deu nenhum resultando igual o código acima.
else if(opcao == 2) {
char vusuario[50];
char vemail[50];
int vsenha;
printf("Digite o Usuario: ");
fflush(stdin);
gets(vusuario);
printf("Digite a Senha: ");
scanf("%i", &vsenha);
fp = fopen("atv.bin","rb");
do {
vusuario;
vsenha;
for (i=0; i<(sizeof(db)/sizeof(menu)); i++ ) {
if(strcmp(vusuario,db[i].usuario)==0 && atoi(vsenha)==db[i].senha){
puts("Usuario e Senha correto");
session = db[i];
int i=0;
while(vsenha[i]) {
if(vsenha[i]==(char)13)
vsenha[i] = '\0';
i++;
}
i=0;
while(vusuario[i]) {
if(vusuario[i]==(char)13)
vusuario[i] = '\0';
i++;
}
}
}
if(session.id<1)
puts("Usuario ou senha invalido");
} while (session.id <1);
fclose(fp);
}