Ir ao conteúdo

Posts recomendados

Postado
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
#include <windows.h>
#define BACKSPACE 8


    static char buffer[128];
    int in=0,l=10,s=10,i=0,verifica_senha=0;
    char c,log[20],senha[20],op,letra = '[COLOR="Blue"][B]\0[/B][/COLOR]';
    int main() {
        
        z
        
        
        printf(" Login : ");
        gets(log);
        printf("\n Senha: ");
        while((c=getch())!=13){ 
          senha[i]=c;
            i++;
            printf("*");          
                  while ((i<127) && (letra!= '\r')) {
        letra = getch();
        if ( letra == BACKSPACE ) {
            if ( i > 0 ) {
                buffer[--i]= '[COLOR="Blue"][B]\0[/B][/COLOR]';
                putchar (BACKSPACE);
                putchar (' ');
                putchar (BACKSPACE);
            } else
                putchar('[COLOR="Blue"][B]\a[/B][/COLOR]');
        } else if (letra != '\r') {
            buffer[i++]=letra;
            putchar('*');
        }
    }          

}
        senha[i]='\0';
        i=0;
        l= strcmp(log,"adm");
        s= strcmp(senha,"1234567"); 
        if(s==0&&l==0){
            printf("\n\n  SENHA CORRETA BEM VINDO AO SISTEMA  ");
            verifica_senha=1;
            Beep(1500,500);
            Sleep(1000);
        }
        else{
            printf("\n\n  LOGIN OU SENHA INCORRETA TENTE NOVAMENTE  \n\n\n",senha);
            Beep(1000,500);
            system("pause");
        }
}

Bom dia estou com um pequeno problema no minha tela de login, e introduzi a fusão  de apagar, enfreto o problema nao consigo dar enter, acho que esqueci alguma coisa poderia me judar alem que quando apago na aba de senha sem ter nada escrito ele substitui  pelo tecla ] poderiao me ajuda e  trabalho de  faculdade 

  • Curtir 1
Postado

Vê se isso ajuda de alguma forma. A entrada de senha não fica oculta no terminal, mas todo o resto funciona:

#include <stdio.h>
#include <string.h>

typedef struct {
    char login[255];
    char senha[255];
} Usuario_t;

int main() {
    // Armazena a situação das informações fornecidas pelo usuário
    int loginCorreto = 0;
    int senhaCorreta = 0;

    // Simula um usuário armazenado no banco de dados
    Usuario_t bancoDados;
    strcpy(bancoDados.login, "");
    strcpy(bancoDados.senha, "");

    // Armazena as entradas do usuário
    Usuario_t entrada;
    
    // Pega os dados do usuário
    printf("Login: ");
    scanf(" %[^\n]s", entrada.login);   // Aceita entrada com espaço
    printf("Senha: ");
    scanf(" %[^\n]s", entrada.senha);   // Aceita entrada com espaço

    // Verifica os dados
    loginCorreto = strcmp(bancoDados.login, entrada.login);
    senhaCorreta = strcmp(bancoDados.senha, entrada.senha);

    // Dá um feedback para o usuário
    if (loginCorreto == 0 && senhaCorreta == 0) {
        printf("Bem vindo.");
    } else if (loginCorreto != 0) {
        printf("Login incorreto");
    } else {
        printf("Senha incorreta");
    }

    return 0;
}

 

  • Curtir 1
  • Obrigado 1
Postado

@yuri_carneiro

#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
#include <windows.h>
#define BACKSPACE 8
    static char buffer[128];
    int in=0,l=10,s=10,i=0,verifica_senha=0;
    char c,log[20],senha[20],op,letra;
    int main() {
        printf(" Login : ");
        gets(log);
        printf("\n Senha: ");
        while((c=getch())!=13){ 
          senha[i]=c;
            i++;
            printf("*");          
                  while ((i<127) && (letra!= '\r')) {
        letra = getch();
        if ( letra == BACKSPACE ) {
            if ( i > 0 ) {
                buffer[--i];
                putchar (BACKSPACE);
                putchar (' ');
                putchar (BACKSPACE);
            } 
        } else if (letra != '\r') {
            buffer[i++]=letra;
            putchar('*');
        }
    }          
}
        senha[i]='\0';
        i=0;
        l= strcmp(log,"adm");
        s= strcmp(senha,"1234567"); 
        if(s==0&&l==0){
            printf("\n\n  SENHA CORRETA BEM VINDO AO SISTEMA  ");
            verifica_senha=1;
            Beep(1500,500);
            Sleep(1000);
        }
        else{
            printf("\n\n  LOGIN OU SENHA INCORRETA TENTE NOVAMENTE  \n\n\n",senha);
            Beep(1000,500);
            system("pause");
        }
}

 

Postado

@Herbertbahia meu amigo o problema ainda persiste se dou enter ele não vai e da um erro 

adicionado 7 minutos depois

@AdrianoSiqueira mano  gostei da sua ideia e bem mais simples mais assim teria como esconder o a parte de senha digitada 

adicionado 32 minutos depois

@Herbertbahia entao meu amigo nao sei porque ta bugando se você roda ai meu codigo vera que na segunda tentativa funciona normalmente 

 

#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
#include <windows.h>
#define BACKSPACE 8
    static char buffer[128];
    int in=0,l=10,s=10,i=0,verifica_senha=0;
    char c,log[20],senha[20],op,letra;
    int main() {
       while(verifica_senha==0){
        printf(" Login : ");
        gets(log);
        printf("\n Senha: ");
        while((c=getch())!=13){ 
          senha=c;
            i++;
            printf("*");          
                  while ((i<127) && (letra!= '\r')) {
        letra = getch();
        if ( letra == BACKSPACE ) {
            if ( i > 0 ) {
                buffer[--i];
                putchar (BACKSPACE);
                putchar (' ');
                putchar (BACKSPACE);
            } 
        } else if (letra != '\r') {
            buffer[i++]=letra;
            putchar('*');
        }
    }          
}
        senha='\0';
        i=0;
        l= strcmp(log,"adm");
        s= strcmp(senha,"1234567"); 
        if(s==0&&l==0){
            printf("\n\n  SENHA CORRETA BEM VINDO AO SISTEMA  ");
            verifica_senha=1;
            Beep(1500,500);
            Sleep(1000);
        }
        else{
            printf("\n\n  LOGIN OU SENHA INCORRETA TENTE NOVAMENTE  \n\n\n",senha);
            Beep(1000,500);
            system("pause");
        }
}

}
 

Postado

 

adicionado 3 minutos depois
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
#include <windows.h>
int main() {
    int in=0,l=10,s=10,i,verifica_senha=0;
    char c,log[20],senha[20],op;
    while(verifica_senha == 0){
        i=0;
        printf(" Login : ");
        gets(log);
        printf("\n Senha: ");
        while((c=getch())!=13){
            if((int)c==8 ){
                if(i>0){
                    i--;
                    printf("\b \b");
                }
            }
            else{
                senha[i]=c;
                i++;
                printf("*");
            }
        }
        senha[i]='\0';
        l= strcmp(log,"adm");
        s= strcmp(senha,"1234567");
        if(s==0&&l==0){
            printf("\n\n  SENHA CORRETA BEM VINDO AO SISTEMA  ");
            verifica_senha=1;
            Beep(1500,500);
            Sleep(1000);
        }
        else{
            printf("\n\n  LOGIN OU SENHA INCORRETA TENTE NOVAMENTE  \n\n\n",senha);
            Beep(1000,500);
            system("pause");
        }
        system("cls");
    }
    printf("Saindo . . . !\n\n\n");
    Sleep(2000);
    return 0;
}

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!