Ir ao conteúdo

Help no algoritmo.


primataprogramme

Posts recomendados

Postado

Galera , andei um pouco afastado por motivos de saúde , 2 meses para ser específico , logo quando eu estava começando a aprender a linguagem fiquei doente :| , bom enfim.Voltei de cara no PC pra ESTUDAR! Vim mexer com vetores e funções que eu já tinha de ter uma grande dificuldade :mad: . Odeio não conseguir fazer algo. Esse é meu projeto de cadastro e login que estou fazendo:

#include <stdio.h>

#include <stdlib.h>

#include <locale.h>

//função que pede ID e senha do usuario para cadstrar.

char usuario_cadastro();

//--------------------

//função que guarda a senha e o usuario.

char usuario (char ID_user[], char senha_user[]);

//---------------------------------------

//função usada para logar na sua conta.

char login (char ID_user_login[], char senha_user_login[]);

//------------------------------------

//função do menu.

char menu(char opcao[],char ID_user[], char senha_user[]);

//-------------------

int main(char ID_user[],char senha_user[])

{

char

opcao[11];

setlocale(LC_ALL,"Portuguese");

system(" clear || cls ");

do {

printf("\t\tDeseja se Cadastrar?\n");

printf("\t\tDigite Cadastro\n\n");

printf("\t\tDeseja Logar em sua conta?\n");

printf("\t\tDigite Logar\n\n");

printf("\t\tEncerrar \n\n");

printf("\t\tDigite Sair\n\n");

printf("\t\tDeseja voltar?\n");

printf("\t\tDigite Voltar.\n\n");

scanf("%s",opcao);

}

while( opcao != "sair" && opcao == "sair" || opcao != "Sair" && opcao == "Sair" );

menu(opcao,ID_user,senha_user);

return(opcao);

}

//menu--------------------

char menu(char opcao,char ID_user[], char senha_user[])

{

/*switch (opcao)

{

case "Sair":

printf("Até mais.\n");

break;

case "Cadastro":

usuario_cadastro();

break;

case "Logar":

login(char ID_user, char senha_user);

break;

case "Voltar":

main();

break;

default :

printf("Opção inválida.\n");

system("PAUSE");

main();

}*/

if ( opcao == "Sair")

{

printf("Até mais.\n");

}

else

{

if ( opcao == "Cadastro" )

{

usuario_cadastro();

}

}

if ( opcao == "Logar" )

{

login(char ID_user_login,char senha_user_login);

}

else

{

if ( opcao == "Voltar")

{

main();

}

}

if ( opcao =! "Sair" || opcao != "Logar" || opcao != "Cadastro" || opcao != "Voltar" )

{

printf("Opcão inválida,tente novamente.\n\n");

system("PAUSE");

main();

}

return(ID_user,senha_user);

}

//------------------------------------

//Função que cadstra senha e ID ---------------

char usuario_cadastro()

{

char

ID_user[16],

senha_user[10];

system("clear || cls");

printf("Digite um nome de usuário para sua conta de no maximo 15 digitos.\n");

scanf("%s",ID_user);

printf("Digite uma senha de no maximo 9 digitos.\n");

scanf("%s",senha_user);

printf("Cadastro efetuado com sucesso.\n");

main(ID_user,senha_user);

return(ID_user,senha_user);

}

//----------------------------------------------------

//Função que guarda senha e o usuário;

/*char usuario (char ID_user[], char senha_user[])

{

char

ID_user_login[] = ID_user,

senha_user_login[] = senhar_user;

return(ID_user_login,senha_user_login);

}*/

char login(char ID_user_login,char senha_user_login)

{

char

password[10],

user[16];

do

{

system("clear || cls");

printf("Digite seu ID: \n");

scanf("%s",user);

printf("Digite sua senha: \n");

scanf("%s",password);

if ( user == ID_user_login && password == senha_user_login )

{

printf("Você está logado em sua conta.\n");

}

else

{

printf("Seus dados estão incorretos.\n");

system("PAUSE");

}

}while(user != ID_user_login && password != senha_user_login );

}

Estou tentando enviar as variáveis da função "usuario_registro" para a função "login" e tentando invocar ela dentro da função "menu" eu fiz com switch a função menu,mas deu algum erro e fiz com if else.To desdas uma tentando acertar esse algoritmo , coisa simples que não to conseguindo fazer mais.

Preciso de ajuda galera, por favor , não escrevam códigos , apenas me apontem os erros .

Agradeço desde já,obrigado e Boa noite kkkk meio tarde pra falar boa noite mas,tamo ae.

Postado

#include <stdio.h>#include <stdlib.h>#include <locale.h>//função que pede ID e senha do usuario para cadstrar.char usuario_cadastro();//--------------------//função que guarda a senha e o usuario.char usuario (char*, char *); //PODE FAZER ASSIM,NAO PRECISA DO NOME DA VARIAVEL AQUI//---------------------------------------//função usada para logar na sua conta.char login (char *, char *);//------------------------------------//função do menu.char menu(char*,char *, char *);//-------------------int main(char ID_user[],char senha_user[])//MAIN só ACEITA 2 PARAMETROS POR DEFAULT- 1º INT E 2º CHAR** Q SAO OS CHAMADOS ARGC E ARGV{charopcao[11];setlocale(LC_ALL,"Portuguese");system(" clear || cls ");do {printf("\t\tDeseja se Cadastrar?\n");printf("\t\tDigite Cadastro\n\n");printf("\t\tDeseja Logar em sua conta?\n");printf("\t\tDigite Logar\n\n");printf("\t\tEncerrar \n\n");printf("\t\tDigite Sair\n\n");printf("\t\tDeseja voltar?\n");printf("\t\tDigite Voltar.\n\n");scanf("%s",opcao);}while( opcao != "sair" && opcao == "sair" || opcao != "Sair" && opcao == "Sair" );//COMPARACAO DE STRING SE FOR C PURO é COM STRCMP()menu(opcao,ID_user,senha_user);return(opcao); //RETORNANDO CHAR PARA MAIN Q ESPERA TIPO INT}//menu--------------------char menu(char opcao,char ID_user[], char senha_user[])//OPCAO é VETOR DE CHAR então "CHAR *OPCAO OU CHAR OPCAO[]"{/*switch (opcao){case "Sair":printf("Até mais.\n");break;case "Cadastro":usuario_cadastro();break;case "Logar":login(char ID_user, char senha_user);break;case "Voltar":main();break;default :printf("Opção inválida.\n");system("PAUSE");main();}*/if ( opcao == "Sair")//NOVAMENTE COMPARACAO DE STRING ERRADA{printf("Até mais.\n");}else{if ( opcao == "Cadastro" )//NOVAMENTE COMPARACAO DE STRING ERRADA{usuario_cadastro();}}if ( opcao == "Logar" )//NOVAMENTE COMPARACAO DE STRING ERRADA{login(char ID_user_login,char senha_user_login);}else{if ( opcao == "Voltar")//NOVAMENTE COMPARACAO DE STRING ERRADA{main();}}if ( opcao =! "Sair" || opcao != "Logar" || opcao != "Cadastro" || opcao != "Voltar" )//NOVAMENTE COMPARACAO DE STRING ERRADA{printf("Opcão inválida,tente novamente.\n\n");system("PAUSE");main();//TEM Q DECIDIR SE MAIN VAI TER PARAMETROS OU NAO}return(ID_user,senha_user); //RETORNANDO CHAR PARA MAIN SEM RETORNO}//------------------------------------//Função que cadstra senha e ID ---------------char usuario_cadastro(){charID_user[16],senha_user[10];system("clear || cls");printf("Digite um nome de usuário para sua conta de no maximo 15 digitos.\n");scanf("%s",ID_user);printf("Digite uma senha de no maximo 9 digitos.\n");scanf("%s",senha_user);printf("Cadastro efetuado com sucesso.\n");main(ID_user,senha_user);return(ID_user,senha_user);//Q RETURN é ESTE. RETURN só DEVE RETORNAR SOMENTE UM VALOR- ELE NAO é UMA FUNCAO}//----------------------------------------------------//Função que guarda senha e o usuário;/*char usuario (char ID_user[], char senha_user[]){charID_user_login[] = ID_user,senha_user_login[] = senhar_user;return(ID_user_login,senha_user_login);}*/char login(char ID_user_login,char senha_user_login) //RECEBENDO CHAR* COMO CHAR APENAS CORRETO = "CHAR * ID_user_login ou CHAR ID_user_login[]"{charpassword[10],user[16];do{system("clear || cls");printf("Digite seu ID: \n");scanf("%s",user);printf("Digite sua senha: \n");scanf("%s",password);if ( user == ID_user_login && password == senha_user_login )//NOVAMENTE COMPARACAO DE STRING ERRADA{printf("Você está logado em sua conta.\n");}else{printf("Seus dados estão incorretos.\n");system("PAUSE");}}while(user != ID_user_login && password != senha_user_login );//NOVAMENTE COMPARACAO DE STRING ERRADA}

Postado

Cara estourou tanto warning e error aqui no meu compilador que eu acho que você deveria rever essa ideia de DOMINANDO.

Como você quer resolver sozinho seus problemas, vou te passar o log para você rastrear. Atente que alguns erros são acusados mais de 1x, coisa de compilador.

Para ser mais preciso, você está usando o operador == e ele está comparando endereços de memória, C não suporta a comparação de char* com ==. Também não pode achar que CHAR é mais do que 1 mísero caractere, parece-me que confundiu com string do C++.

Tem que usar STRCMP pra comparar.

main.c: In function 'main':

main.c:44:1: warning: return makes integer from pointer without a cast [enabled by default]

return(opcao);

^

main.c:44:1: warning: function returns address of local variable [-Wreturn-local-addr]

main.c: At top level:

main.c:50:6: error: conflicting types for 'menu'

char menu(char opcao,char ID_user[], char senha_user[])

^

main.c:19:6: note: previous declaration of 'menu' was here

char menu(char opcao[],char ID_user[], char senha_user[]);

^

main.c: In function 'menu':

main.c:73:12: warning: comparison between pointer and integer [enabled by default]

if ( opcao == "Sair")

^

main.c:79:12: warning: comparison between pointer and integer [enabled by default]

if ( opcao == "Cadastro" )

^

main.c:84:12: warning: comparison between pointer and integer [enabled by default]

if ( opcao == "Logar" )

^

main.c:86:7: error: expected expression before 'char'

login(char ID_user_login,char senha_user_login);

^

main.c:86:7: error: too few arguments to function 'login'

main.c:15:6: note: declared here

char login (char ID_user_login[], char senha_user_login[]);

^

main.c:90:12: warning: comparison between pointer and integer [enabled by default]

if ( opcao == "Voltar")

^

main.c:92:1: error: too few arguments to function 'main'

main();

^

main.c:22:5: note: declared here

int main(char ID_user[],char senha_user[])

^

main.c:95:31: warning: comparison between pointer and integer [enabled by default]

if ( opcao =! "Sair" || opcao != "Logar" || opcao != "Cadastro" || opcao != "Voltar" )

^

main.c:95:51: warning: comparison between pointer and integer [enabled by default]

if ( opcao =! "Sair" || opcao != "Logar" || opcao != "Cadastro" || opcao != "Voltar" )

^

main.c:95:74: warning: comparison between pointer and integer [enabled by default]

if ( opcao =! "Sair" || opcao != "Logar" || opcao != "Cadastro" || opcao != "Voltar" )

^

main.c:100:1: error: too few arguments to function 'main'

main();

^

main.c:22:5: note: declared here

int main(char ID_user[],char senha_user[])

^

main.c:103:1: warning: return makes integer from pointer without a cast [enabled by default]

return(ID_user,senha_user);

^

main.c: In function 'usuario_cadastro':

main.c:125:1: warning: return makes integer from pointer without a cast [enabled by default]

return(ID_user,senha_user);

^

main.c:125:1: warning: function returns address of local variable [-Wreturn-local-addr]

main.c: At top level:

main.c:142:6: error: conflicting types for 'login'

char login(char ID_user_login,char senha_user_login)

^

main.c:15:6: note: previous declaration of 'login' was here

char login (char ID_user_login[], char senha_user_login[]);

^

main.c: In function 'login':

main.c:159:11: warning: comparison between pointer and integer [enabled by default]

if ( user == ID_user_login && password == senha_user_login )

^

main.c:159:40: warning: comparison between pointer and integer [enabled by default]

if ( user == ID_user_login && password == senha_user_login )

^

main.c:168:13: warning: comparison between pointer and integer [enabled by default]

}while(user != ID_user_login && password != senha_user_login );

^

main.c:168:42: warning: comparison between pointer and integer [enabled by default]

}while(user != ID_user_login && password != senha_user_login );

Postado
Cara estourou tanto warning e error aqui no meu compilador que eu acho que você deveria rever essa ideia de DOMINANDO.

Como você quer resolver sozinho seus problemas, vou te passar o log para você rastrear. Atente que alguns erros são acusados mais de 1x, coisa de compilador.

Para ser mais preciso, você está usando o operador == e ele está comparando endereços de memória, C não suporta a comparação de char* com ==. Também não pode achar que CHAR é mais do que 1 mísero caractere, parece-me que confundiu com string do C++.

Tem que usar STRCMP pra comparar.

Realmente acho que eu subestimei um pouco a linguagem C , sai meio de supetão do PHP e LUA pra estudar a C e como eu estudo por conta própria nem tenho muito auxilio , já estou pesquisando sobre comparações de string/vetores e começando a ver ponteiros , que eu não tenho muita noção.

Obrigado pelas dicas !


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


//função que pede ID e senha do usuario para cadstrar.
char usuario_cadastro();
//--------------------

//função que guarda a senha e o usuario.
char usuario (char*, char *); //PODE FAZER ASSIM,NAO PRECISA DO NOME DA VARIAVEL AQUI
//---------------------------------------

//função usada para logar na sua conta.
char login (char *, char *);
//------------------------------------

//função do menu.
char menu(char*,char *, char *);
//-------------------

int main(char ID_user[],char senha_user[])//MAIN só ACEITA 2 PARAMETROS POR DEFAULT- 1º INT E 2º CHAR** Q SAO OS CHAMADOS ARGC E ARGV
{
char
opcao[11];

setlocale(LC_ALL,"Portuguese");

system(" clear || cls ");
do {
printf("\t\tDeseja se Cadastrar?\n");
printf("\t\tDigite Cadastro\n\n");
printf("\t\tDeseja Logar em sua conta?\n");
printf("\t\tDigite Logar\n\n");
printf("\t\tEncerrar \n\n");
printf("\t\tDigite Sair\n\n");
printf("\t\tDeseja voltar?\n");
printf("\t\tDigite Voltar.\n\n");
scanf("%s",opcao);
}
while( opcao != "sair" && opcao == "sair" || opcao != "Sair" && opcao == "Sair" );//COMPARACAO DE STRING SE FOR C PURO é COM STRCMP()

menu(opcao,ID_user,senha_user);
return(opcao); //RETORNANDO CHAR PARA MAIN Q ESPERA TIPO INT

}


//menu--------------------
char menu(char opcao,char ID_user[], char senha_user[])//OPCAO é VETOR DE CHAR então "CHAR *OPCAO OU CHAR OPCAO[]"
{

/*switch (opcao)
{
case "Sair":
printf("Até mais.\n");
break;
case "Cadastro":
usuario_cadastro();
break;
case "Logar":
login(char ID_user, char senha_user);
break;
case "Voltar":
main();
break;
default :
printf("Opção inválida.\n");
system("PAUSE");
main();
}*/

if ( opcao == "Sair")//NOVAMENTE COMPARACAO DE STRING ERRADA
{
printf("Até mais.\n");
}
else
{
if ( opcao == "Cadastro" )//NOVAMENTE COMPARACAO DE STRING ERRADA
{
usuario_cadastro();
}
}
if ( opcao == "Logar" )//NOVAMENTE COMPARACAO DE STRING ERRADA
{
login(char ID_user_login,char senha_user_login);
}
else
{
if ( opcao == "Voltar")//NOVAMENTE COMPARACAO DE STRING ERRADA
{
main();
}
}
if ( opcao =! "Sair" || opcao != "Logar" || opcao != "Cadastro" || opcao != "Voltar" )//NOVAMENTE COMPARACAO DE STRING ERRADA

{
printf("Opcão inválida,tente novamente.\n\n");
system("PAUSE");
main();//TEM Q DECIDIR SE MAIN VAI TER PARAMETROS OU NAO
}

return(ID_user,senha_user); //RETORNANDO CHAR PARA MAIN SEM RETORNO

}
//------------------------------------



//Função que cadstra senha e ID ---------------
char usuario_cadastro()
{
char
ID_user[16],
senha_user[10];

system("clear || cls");

printf("Digite um nome de usuário para sua conta de no maximo 15 digitos.\n");
scanf("%s",ID_user);
printf("Digite uma senha de no maximo 9 digitos.\n");
scanf("%s",senha_user);
printf("Cadastro efetuado com sucesso.\n");
main(ID_user,senha_user);
return(ID_user,senha_user);//Q RETURN é ESTE. RETURN só DEVE RETORNAR SOMENTE UM VALOR- ELE NAO é UMA FUNCAO
}

//----------------------------------------------------

//Função que guarda senha e o usuário;
/*char usuario (char ID_user[], char senha_user[])
{
char
ID_user_login[] = ID_user,
senha_user_login[] = senhar_user;

return(ID_user_login,senha_user_login);
}*/



char login(char ID_user_login,char senha_user_login) //RECEBENDO CHAR* COMO CHAR APENAS CORRETO = "CHAR * ID_user_login ou CHAR ID_user_login[]"
{

char
password[10],
user[16];

do
{

system("clear || cls");

printf("Digite seu ID: \n");
scanf("%s",user);
printf("Digite sua senha: \n");
scanf("%s",password);

if ( user == ID_user_login && password == senha_user_login )//NOVAMENTE COMPARACAO DE STRING ERRADA
{
printf("Você está logado em sua conta.\n");
}
else
{
printf("Seus dados estão incorretos.\n");
system("PAUSE");
}
}while(user != ID_user_login && password != senha_user_login );//NOVAMENTE COMPARACAO DE STRING ERRADA


}

Valeu pelas informações cara! Realmente vai me ajudar bastante a terminar esse programa,e eu crescer mais ainda na linguagem (y) . Abraços!

Postado

Bem como os amigos disseram logo a cima,havia vários problemas,desde chamada de função até de comparação errada.

Mas o mais importante foram as comparações sem dúvidas que eu não tinha nenhum conhecimento em comparar string em C.

Então vou colocar como resolvi minhas comparações,esperando que se alguém procurar pelo fórum ou pela net que seja,tenha mais uma informação a respeito!

char menu(char opcao[],char ID_user_login[],char senha_user_login[])

{

if (stricmp( opcao,"Sair") == 0)

{

printf("Até mais.\n");

}

else if (stricmp(opcao,"Cadastro") == 0)

{

usuario_cadastro();

}

else if (stricmp(opcao,"Logar") == 0)

{

login(ID_user_login,senha_user_login);

}

else if (stricmp(opcao,"Voltar") == 0)

{

main(ID_user_login,senha_user_login);

}

else

{

printf("Opcão inválida,tente novamente.\n\n");

system("PAUSE");

main(ID_user_login,senha_user_login);

}

return(ID_user_login,senha_user_login);

Bom o trecho de código que citei acima,realmente é um dos mais importantes do código que eu escrevi. Eu escrevi esse trecho com o switch , mas notei que string não pode ser comparada por uma switch , então fiz com if e else mesmo,se repararem a diferença do código antes de eu aprender a mexer com STRCMP vão ver muita caquinha kkkk ^-^ , mas faz parte errando que ser aprende.

Bom eu não quero poluir muito o post com código já que o posto já foi encerrado , então pra quem quiser ver o código todo vou postar dentro de uma spoiler!

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <locale.h>

//função que pede ID e senha do usuario para cadstrar.

char usuario_cadastro();

//--------------------

//função que guarda a senha,usuario e opcão de menu.

char bancaria();

//---------------------------------------

//função usada para logar na sua conta.

char login (char ID_user_login[],char senha_user_login[]);

//------------------------------------

//função do menu.

char menu(char opcao[],char ID_user_login[],char senha_user_login[]);

//-------------------

int main(char ID_user[],char senha_user[])

{

char

opcao[11];

setlocale(LC_ALL,"Portuguese");

system(" clear || cls ");

do {

printf("\t\tDeseja se Cadastrar?\n");

printf("\t\tDigite Cadastro\n\n");

printf("\t\tDeseja Logar em sua conta?\n");

printf("\t\tDigite Logar\n\n");

printf("\t\tEncerrar \n\n");

printf("\t\tDigite Sair\n\n");

printf("\t\tDeseja voltar?\n");

printf("\t\tDigite Voltar.\n\n");

scanf(" %s",opcao);

}

while( (stricmp(opcao,"sair") == 0) && (stricmp(opcao,"sair") != 0) );

menu(opcao,ID_user,senha_user);

return(opcao,ID_user,senha_user);

}

//menu--------------------

char menu(char opcao[],char ID_user_login[],char senha_user_login[])

{

if (stricmp( opcao,"Sair") == 0)

{

printf("Até mais.\n");

}

else if (stricmp(opcao,"Cadastro") == 0)

{

usuario_cadastro();

}

else if (stricmp(opcao,"Logar") == 0)

{

login(ID_user_login,senha_user_login);

}

else if (stricmp(opcao,"Voltar") == 0)

{

main(ID_user_login,senha_user_login);

}

else

{

printf("Opcão inválida,tente novamente.\n\n");

system("PAUSE");

main(ID_user_login,senha_user_login);

}

return(ID_user_login,senha_user_login);

}

//------------------------------------

//Função que cadstra senha e ID ---------------

char usuario_cadastro()

{

char

ID_user[16],

senha_user[10];

system("clear || cls");

printf("Digite um nome de usuário para sua conta de no maximo 15 digitos.\n");

scanf("%s",ID_user);

printf("Digite uma senha de no maximo 9 digitos.\n");

scanf("%s",senha_user);

printf("Cadastro efetuado com sucesso.\n");

main(ID_user,senha_user);

return(ID_user,senha_user);

}

//----------------------------------------------------

//Função que guarda senha e o usuário;

/*char usuario (char ID_user[], char senha_user[])

{

char

ID_user_login[] = ID_user,

senha_user_login[] = senhar_user;

return(ID_user_login,senha_user_login);

}*/

char login(char ID_user_login[],char senha_user_login[])

{

char

password[10],

user[16];

do

{

system("clear || cls");

printf("Digite seu ID: \n");

scanf("%s",user);

printf("Digite sua senha: \n");

scanf("%s",password);

if ( (stricmp(user,ID_user_login) == 0) && (stricmp(password,senha_user_login) == 0) )

{

printf("Você está logado em sua conta.\n");

}

else

{

printf("Seus dados estão incorretos.\n");

system("PAUSE");

}

}while( (strcmp(user,ID_user_login) != 0) && (stricmp(password,senha_user_login) != 0) );

Espero que pra alguém mais seja útil essa informação que estou deixando aqui,acabei de aprender sobre,e quis vir compartilhar pra quando e se alguém precisar! Abaços!

Postado
Bem como os amigos disseram logo a cima,havia vários problemas,desde chamada de função até de comparação errada.

Mas o mais importante foram as comparações sem dúvidas que eu não tinha nenhum conhecimento em comparar string em C.

Então vou colocar como resolvi minhas comparações,esperando que se alguém procurar pelo fórum ou pela net que seja,tenha mais uma informação a respeito!

Bom o trecho de código que citei acima,realmente é um dos mais importantes do código que eu escrevi. Eu escrevi esse trecho com o switch , mas notei que string não pode ser comparada por uma switch , então fiz com if e else mesmo,se repararem a diferença do código antes de eu aprender a mexer com STRCMP vão ver muita caquinha kkkk ^-^ , mas faz parte errando que ser aprende.

Bom eu não quero poluir muito o post com código já que o posto já foi encerrado , então pra quem quiser ver o código todo vou postar dentro de uma spoiler!

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <locale.h>

//função que pede ID e senha do usuario para cadstrar.

char usuario_cadastro();

//--------------------

//função que guarda a senha,usuario e opcão de menu.

char bancaria();

//---------------------------------------

//função usada para logar na sua conta.

char login (char ID_user_login[],char senha_user_login[]);

//------------------------------------

//função do menu.

char menu(char opcao[],char ID_user_login[],char senha_user_login[]);

//-------------------

int main(char ID_user[],char senha_user[])

{

char

opcao[11];

setlocale(LC_ALL,"Portuguese");

system(" clear || cls ");

do {

printf("\t\tDeseja se Cadastrar?\n");

printf("\t\tDigite Cadastro\n\n");

printf("\t\tDeseja Logar em sua conta?\n");

printf("\t\tDigite Logar\n\n");

printf("\t\tEncerrar \n\n");

printf("\t\tDigite Sair\n\n");

printf("\t\tDeseja voltar?\n");

printf("\t\tDigite Voltar.\n\n");

scanf(" %s",opcao);

}

while( (stricmp(opcao,"sair") == 0) && (stricmp(opcao,"sair") != 0) );

menu(opcao,ID_user,senha_user);

return(opcao,ID_user,senha_user);

}

//menu--------------------

char menu(char opcao[],char ID_user_login[],char senha_user_login[])

{

if (stricmp( opcao,"Sair") == 0)

{

printf("Até mais.\n");

}

else if (stricmp(opcao,"Cadastro") == 0)

{

usuario_cadastro();

}

else if (stricmp(opcao,"Logar") == 0)

{

login(ID_user_login,senha_user_login);

}

else if (stricmp(opcao,"Voltar") == 0)

{

main(ID_user_login,senha_user_login);

}

else

{

printf("Opcão inválida,tente novamente.\n\n");

system("PAUSE");

main(ID_user_login,senha_user_login);

}

return(ID_user_login,senha_user_login);

}

//------------------------------------

//Função que cadstra senha e ID ---------------

char usuario_cadastro()

{

char

ID_user[16],

senha_user[10];

system("clear || cls");

printf("Digite um nome de usuário para sua conta de no maximo 15 digitos.\n");

scanf("%s",ID_user);

printf("Digite uma senha de no maximo 9 digitos.\n");

scanf("%s",senha_user);

printf("Cadastro efetuado com sucesso.\n");

main(ID_user,senha_user);

return(ID_user,senha_user);

}

//----------------------------------------------------

//Função que guarda senha e o usuário;

/*char usuario (char ID_user[], char senha_user[])

{

char

ID_user_login[] = ID_user,

senha_user_login[] = senhar_user;

return(ID_user_login,senha_user_login);

}*/

char login(char ID_user_login[],char senha_user_login[])

{

char

password[10],

user[16];

do

{

system("clear || cls");

printf("Digite seu ID: \n");

scanf("%s",user);

printf("Digite sua senha: \n");

scanf("%s",password);

if ( (stricmp(user,ID_user_login) == 0) && (stricmp(password,senha_user_login) == 0) )

{

printf("Você está logado em sua conta.\n");

}

else

{

printf("Seus dados estão incorretos.\n");

system("PAUSE");

}

}while( (strcmp(user,ID_user_login) != 0) && (stricmp(password,senha_user_login) != 0) );

Espero que pra alguém mais seja útil essa informação que estou deixando aqui,acabei de aprender sobre,e quis vir compartilhar pra quando e se alguém precisar! Abaços!

Em que compilador você rodou este codigo? O que teus RETURN's estão retornando? ( return(ID_user_login,senha_user_login);). Outra coisa, a funcao STRICMP nao faz parte do POSIX, então evite usa-la pois nao é portavel, se você quer comparacao sem case sensitive use STRCASECMP() q é POSIX. Evite usar a chamada main no meio do programa. Main deve ser padrão pois é a unica funcao obrigatoria, pois todo o codigo deve possuir um main() e por default ela aceita 2 parametros que expliquei acima em outra citacao, ou 0 parametro (nenhum). Sempre q for tentar ajudar outros tenha certeza do que esta postando, pois muitas vezes ao invés de ajudar acabamos confundindo, por isto compile o codigo antes de postar.

Postado
Sempre q for tentar ajudar outros tenha certeza do que esta postando, pois muitas vezes ao invés de ajudar acabamos confundindo, por isto compile o código antes de postar.
Mas eu compilei e deu certo '---'! Ta certo que tem muitos bug,mas o que eu realmente queria mostrar aqui não eram os bug,e sim como comparar string,que era o que estava fazendo o programa não rodar.Ahh e eu uso o code:block.

:wacko:

Postado
Sempre q for tentar ajudar outros tenha certeza do que esta postando, pois muitas vezes ao invés de ajudar acabamos confundindo, por isto compile o código antes de postar.
Mas eu compilei e deu certo '---'! Ta certo que tem muitos bug,mas o que eu realmente queria mostrar aqui não eram os bug,e sim como comparar string,que era o que estava fazendo o programa não rodar.Ahh e eu uso o code:block.

:wacko:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!