[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.