Ir ao conteúdo
  • Cadastre-se

C Problema com Usuário e senha Linguagem C


Visitante

Posts recomendados

#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?

 

 

 

 

 

 

 

 

Link para o comentário
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;
}

 

Link para o comentário
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.

Link para o comentário
Compartilhar em outros sites

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

Link para o comentário
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.

Link para o comentário
Compartilhar em outros sites

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!