Ir para conteúdo
Sistema de Servidores de Jogos ×
  • Quem está por aqui   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.

Posts Recomendados

Olá a todos :)

 

Estou aprendendo a programar em C++ por conta, e sou novato no assunto todavia.

 

Surgiu um erro em meu programa que não consegui solucionar, passei boa parte da tarde de hoje tentando.

 

Por isso venho aqui pedir ajuda, pois ja tentei de tudo xD

 

EDIT:

Encontrei o problema, mas não sei como resolve-lo.

 

Quando eu erro a senha, meu cdtBuffer.senha esta com um numero inválido (Menor que 4 digitos ou maior que 22), então quando ele retorna para redigitar a senha, ele pula pro erro novamente, pois ja tem informação nele.

 

Como eu faço para ele reiniciar? Voltar a não ter nada? Da maneira que estava na primeira vez que se digitou a senha, sem digito nenhum?

 

void newUser()

{

returnCadastre:

system("CLS");

system("COLOR 0F");

printf("E f e t u a r N o v o C a d a s t r o\n");

printf("________________________________________________________________________________\n");

cadastro cdtBuffer;

printf("Informe seu Nome: ");

fflush(stdin);

gets(cdtBuffer.nome);

 

returnLogin:

system("CLS");

system("COLOR 0F");

printf("N o v o U s u %c r i o: %s\n", -96, cdtBuffer.nome);

printf("________________________________________________________________________________\n");

int testLEN, i;

printf("Aviso: Seu Login deve ser maior que 4 e menor que 11 digitos.\n\n");

printf("Informe seu Login: ");

fflush(stdin);

gets(cdtBuffer.login);

 

testLEN = strlen(cdtBuffer.login);

 

if(testLEN < 4 || testLEN > 11)

{

system("CLS");

system("COLOR 0C");

printf("M e n s a g e m\n\a");

printf("________________________________________________________________________________\n");

printf("Login inv%clido, digite novamente.\n\n", -96);

system("PAUSE");

goto returnLogin; }

 

returnSenha: << 4- O programa volta aqui, para digitar a senha novamente

system("CLS");

system("COLOR 0F");

printf("N o v o U s u %c r i o: %s (%s)\n", -96, cdtBuffer.nome, cdtBuffer.login);

printf("________________________________________________________________________________\n");

printf("Aviso: Sua Senha deve ser maior que 4 e menor que 22 digitos.\n\n");

printf("Informe sua Senha: ");

fflush(stdin);

 

char pass[22], ch;

int aux=0;

 

while(ch != 13) << 5- Na hora de digitar a senha novamente, ele pula para o erro pois meu "cdtBuffer.senha" ja contém informações

{ então ele pula direto pra mensagem de erro, pois é inválida!

ch = getch();

 

if(ch != 13 && ch != 8)

{

cdtBuffer.senha[aux] = ch;

aux++;

putchar(42); }

 

if(ch == 8 && aux > 0)

{

aux--;

printf("\b \b"); }

}

 

cdtBuffer.senha[aux] = '\0'; << 1- Recebo a senha aqui

 

testLEN = strlen(cdtBuffer.senha);

 

if(testLEN < 4 || testLEN > 22) << 2- Testo ela aqui (Menor que 4 e maior que 22)

{

system("CLS");

system("COLOR 0C");

printf("M e n s a g e m\n\a");

printf("________________________________________________________________________________\n");

printf("Senha inv%clida, digite novamente.\n\n", -96);

system("PAUSE");

goto returnSenha; } << 3- Aqui a senha ja é inválida, e mando retornar pro inicio para redigitar a senha.

 

returnFireguard:

system("CLS");

system("COLOR 0F");

printf("N o v o U s u %c r i o: %s (%s)\n", -96, cdtBuffer.nome, cdtBuffer.login);

printf("________________________________________________________________________________\n");

printf("Fireguard: Sua senha secund%cria!\n", -96);

printf("Aviso 1 : Sua Fireguard n%co deve igual sua Senha.\n", -58);

printf("Aviso 2 : Sua Fireguard deve ser maior que 4 e menor que 22 digitos.\n\n");

printf("Informe sua Fireguard: ");

fflush(stdin);

 

aux=0;

 

while(ch != 13)

{

ch = getch();

 

if(ch != 13 && ch != 8)

{

cdtBuffer.fireguard[aux] = ch;

aux++;

putchar(42); }

 

if(ch == 8 && aux > 0)

{

aux--;

printf("\b \b"); }

}

 

testLEN = strlen(cdtBuffer.fireguard);

 

if(testLEN < 4 || testLEN > 22)

{

system("CLS");

system("COLOR 0C");

printf("M e n s a g e m\n\a");

printf("________________________________________________________________________________\n");

printf("Fireguard inv%clida, digite novamente.\n\n", -96);

system("PAUSE");

goto returnFireguard; }

 

else

{

if (strcmp(cdtBuffer.fireguard, cdtBuffer.senha) == 0)

{

system("CLS");

system("COLOR 0C");

printf("M e n s a g e m\n\a");

printf("_________________________________________________________________________________n");

printf("Sua Fireguard e sua Senha s%co iguais. Por Favor, digite novamente!\n\n", -58);

system("PAUSE");

goto returnFireguard; }

}

 

cdtBuffer.fireguard[aux] = '\0'; << Aqui existe outro, porém, não se chega nele ainda para ver >.<

 

returnSecret:

system("CLS");

system("COLOR 0F");

printf("N o v o U s u %c r i o: %s (%s)\n", -96, cdtBuffer.nome, cdtBuffer.login);

printf("________________________________________________________________________________\n");

printf("Aviso 1: Informe uma Palavra-chave, caso esque%ca sua Senha.\n", -121);

printf("Aviso 2: A mesma deve ser maior que 4 e menor que 18 digitos.\n\n");

printf("Informe sua Palavra-chave: ");

fflush(stdin);

gets(cdtBuffer.secret);

 

testLEN = strlen(cdtBuffer.secret);

 

if(testLEN < 4 || testLEN > 18)

{

system("CLS");

system("COLOR 0C");

printf("M e n s a g e m\n\a");

printf("________________________________________________________________________________\n");

printf("Palavra-chave inv%clida, digite novamente.\n\n", -96);

system("PAUSE");

goto returnSecret; }

 

returnConfirm:

system("CLS");

system("COLOR 0F");

printf("C o n f i r m a r D a d o s C a d a s t r a i s\n");

printf("________________________________________________________________________________\n");

printf("Nome : %s\n", cdtBuffer.nome);

printf("Login : %s\n", cdtBuffer.login);

printf("Senha : %s\n", cdtBuffer.senha);

printf("Fireguard: %s\n", cdtBuffer.fireguard);

printf("P. Chave : %s\n\n\n", cdtBuffer.secret);

printf("Gostaria de Finalizar o Cadastro?");

printf("\n\n[1] Sim\n[2] N%co\n[3] Novo Cadastro\n\n>", -58);

 

char resp;

fflush(stdin);

 

scanf("%c", &resp);

 

switch(resp)

{

case 1:

/*ofstream writeArq; //Declara uma variável do tipo que Grava

writeArq.open("Login.txt"); //Abre o Arquivo

writeArq << cdtBuffer.login << endl;

writeArq << cdtBuffer.senha << endl;

writeArq << cdtBuffer.fireguard << endl;

writeArq << cdtBuffer.secret << endl;

writeArq.close(); //Fecha o Arquivo

FILE *arq;

arq = fopen("login.txt", "wt");

fprintf(arq, "%s\n", newCadastro.login);

fprintf(arq, "%s\n", newCadastro.senha);

fprintf(arq, "%s\n", newCadastro.fireguard);

fprintf(arq, "%s\n", newCadastro.secret);

fprintf(arq, "3");

fclose(arq); */

printf("\n\nCadastro Efetuado com Sucesso!!\n\n");

system("PAUSE");

break;

 

case 2:

system("CLS");

system("COLOR 0F");

printf("Pressione qualquer tecla para retornar ao Menu Principal...");

getch();

break;

 

case 3:

goto returnCadastre;

break;

 

default:

system("CLS");

system("COLOR 0C");

printf("M e n s a g e m\n\a");

printf("________________________________________________________________________________\n");

printf("Op%c%co inv%clida, digite novamente.\n\n", -121, -58, -96);

system("PAUSE");

goto returnConfirm;

 

}

 

};

 

O problema é:

Quando eu erro a SENHA, o código pula direto pra mensagem de Erro da segunda senha (Fireguard), e fica em um Loop infinito lá.

 

Gostaria que quando erasse a senha, fosse pra mensagem de Erro da senha, e depois de tudo certo, fosse para a parte de informar a Fireguard...

>.<

 

Aguardo respostas...

Link para o comentário
https://www.webcheats.com.br/topic/1803298-help-me-xd/
Compartilhar em outros sites

Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...

Informação Importante

Nós fazemos uso de cookies no seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies , caso contrário, vamos supor que você está bem para continuar.