Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Então, eu estou tentando fazer um programa onde o programa oferece 3 opções de começo:
1 - Cadastrar
2 - Logar
3 - Fechar
Depois de cadastrado, voltaria ao menu e apareceria denovo essas 3 opções, o que eu ainda nao fiz.
Por enquanto o que tento fazer é que Cadastre o usuário, depois de cadastrado ir pro login, pede login e senha, se estiver certo loga, se não dá falha e fecha.
Eu consegui fazer o programa funcionar direitinho, mas tudo no main, agora estou tentando dividir em funções, uma para o cadastro, posteriormente outras funções, mas depois de montar em funções, tive que montar 2 funções, uma para cadastrar o login, e outra para a senha, pois a função retornaria o valor final (login / senha) para a variável, e não sei como fazer retornar 2 valores para 2 variáveis diferentes. Então vim aqui pedir uma ajuda, no momento o código aponta 2 erros na função main, que são: "Incompatyble types when assigning to type 'char[20]' from type 'char'", os 2 são iguais, e apontam para as linhas:
logando[a].user = cadastro_login();
logando[a].pass = cadastro_senha();
Enfim, aí vai o código:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct cadastro{
char user[20];
char pass[20];
char login[20];
char senha[20];
}cadastro;
char cadastro_login()
{
struct cadastro usuario[1];
// for (a=0;a<3;a++)
// {
// b = a+1;
system("cls");
printf("\n\tCadastro");
puts("\n\n\tDigite o login: ");
printf("\t");
scanf(" %s",usuario[0].user);
// }
return(*usuario[0].user);
}
char cadastro_senha()
{
struct cadastro password[1];
puts("\tDigite a senha: ");
printf("\t");
scanf(" %s",password[0].pass);
system("cls");
return(*password[0].pass);
}
int main(void)
{
int a,b,c,d,nc;
int logado;
int op;
//char user[3][20],pass[3][20];
char login[20], senha[20];
struct cadastro logando[3];
printf("1 - Cadastro\n");
printf("2 - Logar\n");
printf("3 - Fechar\n");
scanf("%d", &op);
if (op == 1) {
printf("\nQuantos cadastros deseja fazer? \n");
scanf("%d",&nc);
for (a=0;a<nc;a++){
logando[a].user = cadastro_login();
logando[a].pass = cadastro_senha();
}
}
else if (op == 3) exit(0);
system("cls");
printf("\n\tLogon\n");
printf("\n\tLogin: ");
scanf(" %s",&login);
printf("\n\tSenha: ");
scanf(" %s",&senha);
for (c=0;c<3;c++)
{
if ((strcmp(login,logando[c].user)!=0) || (strcmp(senha,logando[c].pass)!=0))
{
logado= 1; //login e/ou senha incorretos
}
else if(strcmp(login,logando[c].user)==0)
{
if (strcmp(senha,logando[c].pass)==0)
{
logado = 2; //logado com sucesso
break;
}
}
}
if (logado==1)
{
printf("\nLogin e/ou senha incorretos(s)\n");
}
else if (logado==2)
{
printf("\nLogado com sucesso!\nBem-vindo(a) %s\n",login[0]);
}
}
Qualquer "coisa de noob" aí é normal, sou bem iniciante xD
Carregando comentários...