Ir ao conteúdo
  • Cadastre-se
Visitante

C Problema com Usuário e senha Linguagem C

Posts recomendados

Visitante

#include <stdio.h>
#include <stdlib.h>
#include <locale.h>

int main()
{
    setlocale(LC_ALL,"Portuguese");

    char c ;
    char login [10] ;
    char senha [10] ;
    int i = 0 ;


    system("cls");
    printf("\n\t\tInforme os dados de acesso\n\n");
    printf ("\n Digite seu Login: ");
    scanf("%s", &login);
    printf ("\n Digite sua Senha: ");
    while((c=getch())!=13){
           senha=c;
           i++;
           printf("*");
           }
          senha='\0';
          i=0;


    if((strcmp(login, "admin") == 0) && (strcmp(senha, "123") == 0)){

        printf("\n\nUsuário logado com Sucesso.\n");

        }

else{
        printf("\n\nUsuário e/ou senha inválidos, tente novamente. . .\n");

}


    return 0;
}

 

 

Preciso que peça o usuário e senha novamente com o usuário preencher os dados errados. Alguém poderia me ajudar?

 

 

 

 

 

 

 

 

  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Welliton Mendonça       para  postar seu código é melhor usar o botão   <>   que está desenhado na barra de ferramentas da janela de postar , poi senão seu código fica faltando alguns caracteres como os   [ i ]   que sumiram do seu código ,  e seu código com algumas modificações poderia ser assim   :

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <locale.h>
int main(){
    setlocale(LC_ALL,"Portuguese");
    char c,login [10],senha [10]  ;
    int i = 0                     ;

    system("cls");
    printf("\n\t\tInforme os dados de acesso\n\n");
    printf ("\n Digite seu Login: ");
    printf("\npara testar digite -> admin\n");
    scanf("%s", &login);
    printf ("\n Digite sua Senha: ");
    printf("\npara testar digite -> 123\n");
    while((c=getch())!=13){
        senha[i]=c;
        i++;
        printf("*");
    }
    senha[i]='\0';
    i=0;
    if((strcmp(login, "admin") == 0) && (strcmp(senha, "123") == 0)){
        printf("\n\nUsuário logado com Sucesso.\n");
    }
    else{
        printf("\n\nUsuário e/ou senha inválidos, tente novamente. . .\n");
    }
    return 0;
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Welliton Mendonça Seria algo assim que você queria fazer?

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

/* Constantes */
#define TAMANHO_NOME 10
#define TAMANHO_SENHA 10

typedef struct
{
  char nome[TAMANHO_NOME];
  char senha[TAMANHO_SENHA];
}TUsuario;

/* Procedimentos */
void Cadastra(TUsuario *usuario);

int main()
{
  TUsuario usuario;
  Cadastra(&usuario);
  return(0);
}

void Cadastra(TUsuario *usuario)
{
  TUsuario auxiliar;
  char tecla;
  do
  {
    printf("\nDigite um nome de usuario:\t");
    scanf("%s",usuario->nome);
    getchar();
    printf("\nDigite uma senha para o novo usuario:\t");
    scanf("%s",usuario->senha);
    getchar();
    printf("\nDigite o nome de usuario novamente:\t");
    scanf("%s",auxiliar.nome);
    getchar();
    printf("\nDigite a senha novamente:\t");
    scanf("%s",auxiliar.nome);
    getchar();
    if(!(strcmp(usuario->nome,auxiliar.nome)&&strcmp(usuario->senha,auxiliar.senha)))
    {
      printf("\nNome de usuario ou senha invalidos..");
      printf("\nDigite novamente");
    }
    else 
      printf("\nUsuario e senha validados..\n");
    printf("\nDeseja sair S ou N:\t");
    scanf("%c",&tecla);
    getchar();
    }while(((tecla!='s')&&(strcmp(usuario->nome,auxiliar.nome)&&strcmp(usuario->senha,auxiliar.senha))));
}

Eu deveria ter colocado alguns comentários mas eu estava com pressa.

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  •    1
    Visitante

    Não, preciso que quando o usuário digitasse a senha errada, chamasse o "digite o login e senha", sem precisar sair do programa

    adicionado 0 minutos depois

    @KXSY

    Não, preciso que quando o usuário digitasse a senha errada, chamasse o "digite o login e senha", sem precisar sair do programa

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    4 horas atrás, Welliton Mendonça disse:

    #include <stdio.h>
    #include <stdlib.h>
    #include <locale.h>

    int main()
    {
        setlocale(LC_ALL,"Portuguese");

        char c ;
        char login [10] ;
        char senha [10] ;
        int i = 0 ;


        system("cls");
        printf("\n\t\tInforme os dados de acesso\n\n");
        printf ("\n Digite seu Login: ");
        scanf("%s", &login);
        printf ("\n Digite sua Senha: ");
        while((c=getch())!=13){
               senha=c;
               i++;
               printf("*");
               }
              senha='\0';
              i=0;


        if((strcmp(login, "admin") == 0) && (strcmp(senha, "123") == 0)){

            printf("\n\nUsuário logado com Sucesso.\n");

            }

    else{
            printf("\n\nUsuário e/ou senha inválidos, tente novamente. . .\n");

    }


        return 0;
    } 

     

    Vou deixa claro aqui que eu não tenho um compilador para compilar isso, eu só uso o gcc.

    então se você quiser repetir e preste bem atenção no que eu escrevi "REPETIR" basta colocar um do{...}while(); com a mesma condição do if só que com uma negação, seria mais ou menos assim

    while(!(strcmp(login, "admin") == 0) && (strcmp(senha, "123") == 0));

     

    1 hora atrás, KXSY disse:

    @Welliton Mendonça Seria algo assim que você queria fazer?

    
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    /* Constantes */
    #define TAMANHO_NOME 10
    #define TAMANHO_SENHA 10
    
    typedef struct
    {
      char nome[TAMANHO_NOME];
      char senha[TAMANHO_SENHA];
    }TUsuario;
    
    /* Procedimentos */
    void Cadastra(TUsuario *usuario);
    
    int main()
    {
      TUsuario usuario;
      Cadastra(&usuario);
      return(0);
    }
    
    void Cadastra(TUsuario *usuario)
    {
      TUsuario auxiliar;
      char tecla;
      do
      {
        printf("\nDigite um nome de usuario:\t");
        scanf("%s",usuario->nome);
        getchar();
        printf("\nDigite uma senha para o novo usuario:\t");
        scanf("%s",usuario->senha);
        getchar();
        printf("\nDigite o nome de usuario novamente:\t");
        scanf("%s",auxiliar.nome);
        getchar();
        printf("\nDigite a senha novamente:\t");
        scanf("%s",auxiliar.nome);
        getchar();
        if(!(strcmp(usuario->nome,auxiliar.nome)&&strcmp(usuario->senha,auxiliar.senha)))
        {
          printf("\nNome de usuario ou senha invalidos..");
          printf("\nDigite novamente");
        }
        else 
          printf("\nUsuario e senha validados..\n");
        printf("\nDeseja sair S ou N:\t");
        scanf("%c",&tecla);
        getchar();
        }while(((tecla!='s')&&(strcmp(usuario->nome,auxiliar.nome)&&strcmp(usuario->senha,auxiliar.senha))));
    }

    Eu deveria ter colocado alguns comentários mas eu estava com pressa.

    o código que eu coloque faz basicamente isso.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Crie uma conta ou entre para comentar

    Você precisar ser um membro 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 publicações 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: minicurso “Como ganhar dinheiro montando computadores”

    Gabriel TorresGabriel Torres, fundador e editor executivo do Clube do Hardware, acaba de lançar um minicurso totalmente gratuito: "Como ganhar dinheiro montando computadores".

    Você aprenderá sobre o quanto pode ganhar, como cobrar, como lidar com a concorrência, como se tornar um profissional altamente qualificado e muito mais!

    Inscreva-se agora!