Ir para conteúdo
🥇 [Exclusivo] Seja um Membro VIP EXTREME! ×
  • Quem está por aqui   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.

Posts Recomendados

Boa noite, pessoal.

 

Estou com uma série de problemas envolvendo este código e gostaria da opinião de vocês sobre os possíveis erros que existem no código. Criei, compilei e testei usando meu sistema operacional Linux, mas quando fui executar em uma máquina com S.O Windows, percebi que acontece alguns problemas.

 

O que basicamente acontece?

 

1- Algumas palavras que eu insiro no login e na senha, se eu digitar por exemplo a palavra "admin" no login e na senha até errar 3x, ao invés de sair do programa, ele irá ignorar os 3 erros e ficará em laço infinito.

2- Em uma determinada execução, ao errar 1x o login e a senha, ele ignora as 2 tentativas restantes e sai do programa

3- Não imprime corretamente o login se eu digitar um qualquer que tenha mais de 5 letras.

 

Basicamente é um simples código de autenticação (login e senha).

 

Segue abaixo o código:

É necessário se cadastrar para acessar o conteúdo.

 

Desde já, agradeço a todos.

"Call me King, call me Demon. The Water forget the Names of the drowned."

Link para o comentário
https://www.webcheats.com.br/topic/2243947-quais-os-erros-desde-c%C3%B3digo/
Compartilhar em outros sites

1° erro e o mais óbvio, você está criando uma variável "login" com espaço para armazenar 5 caracteres (0 a 4), portando se tentar acrescentar algo além desses 5 espaços, terá problemas.

 

2° No final, o problema dele ignorar as outras tentativas é bem clara, você fez um if bem claro:

É necessário se cadastrar para acessar o conteúdo.

 

Entendeu? Se for menor ou igual a 3 ele mostra uma mensagem que os dados estão errados, senão sai do programa direto. Como no primeiro loop "erro" vale 1, então ele já vai pro else direto, fechando a aplicação.

 

Como corrigir:

Crie um ELSE IF, uma segunda condição caso a primeira não seja executada, informando que caso "erro" tiver valor maior que 3, aí sim pode fechar o programa.

 

 

Caso não tenha ficado claro, deixo abaixo ele editado:

É necessário se cadastrar para acessar o conteúdo.

  • Curtir 1

Meus brinquedos em WinAPI:

Calculador

MemoryScanner

Faça parte também da DarkProgramming Team!

Link para o comentário
https://www.webcheats.com.br/topic/2243947-quais-os-erros-desde-c%C3%B3digo/#findComment-8938469
Compartilhar em outros sites

[quote name='Inoxybel']1° erro e o mais óbvio, você está criando uma variável "login" com espaço para armazenar 5 caracteres (0 a 4), portando se tentar acrescentar algo além desses 5 espaços, terá problemas. 2° No final, o problema dele ignorar as outras tentativas é bem clara, você fez um if bem claro: [PHP]Se (erro <= 3) então{ faça isso }senão{ mostra mensagem; sai do programa; }[/PHP] Entendeu? Se for menor ou igual a 3 ele mostra uma mensagem que os dados estão errados, senão sai do programa direto. Como no primeiro loop "erro" vale 1, então ele já vai pro else direto, fechando a aplicação. Como corrigir: Crie um ELSE IF, uma segunda condição caso a primeira não seja executada, informando que caso "erro" tiver valor maior que 3, aí sim pode fechar o programa. Caso não tenha ficado claro, deixo abaixo ele editado: [PHP] int main(){ char login[10]; char password[10]; int erro = 1; do{ printf("User: "); scanf("%s", &login); printf("Password: "); limpar_buffer(); scanf("%s", &password); printf("-------------------------------------------\n"); printf("Login written: %s", login); printf("\nPassword written: %s\n", password); printf("-------------------------------------------\n"); if(strcmp(login, "root") == 0){ if(strcmp(password, "toor") == 0){ printf("[*] Login sucessful\n"); break; } } else{ erro++; if(erro <= 3){ printf("[!] Password is wrong\n"); } else if(erro > 3){ printf("Incorrect for 3 times\nBye"); break; } } }while(erro <= 3); system("PAUSE"); }[/PHP][/QUOTE] Agradeço o feedback de vocês dois ( @rnxn e @Inoxybel ). Vou providenciar as devidas correções do código. - @Edit Fiz as devidas atualizações do código de acordo com o que o @Inoxybel recomendou e percebi que ainda continuava com problemas, foi então que junto com meu professor de programação, descobrimos um erro besta da minha parte. Os vetores login e password deveriam ter 5 espaços e não 4, pois com 4 eu estava omitindo o '\0' de final de string, depois de corrigido e testado, o programa rodou normalmente. Agradecido. @Green Arrow, pode fechar o tópico, meu amigo.

"Call me King, call me Demon. The Water forget the Names of the drowned."

Link para o comentário
https://www.webcheats.com.br/topic/2243947-quais-os-erros-desde-c%C3%B3digo/#findComment-8938632
Compartilhar em outros sites

Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...

Informação Importante

Nós fazemos uso de cookies no seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies , caso contrário, vamos supor que você está bem para continuar.