Ir ao conteúdo
  • Cadastre-se

Asrety

Membro Pleno
  • Posts

    60
  • Cadastrado em

  • Última visita

Tópicos solucionados

  1. O post de Asrety em como rodar um programa e quando clicado a tecla 'a' ele para foi marcado como solução   
    @Junior nss aqui está outra forma, mas bem parecida com o do nosso amigo @Flávio Pedroza segue o código abaixo:
    #include <stdio.h> #include <conio.h> int main(){ while(1){ printf("1001"); if(kbhit() && getch() == 97) break; } return 0; }  
  2. O post de Asrety em Sistema para impedir repetição de cadastros com o mesmo nome foi marcado como solução   
    Olá, @SamuraiOcidental, utilizando a sua tentativa como base, fiz um código que acredito que possa te ajudar, mas lembrando : pode possuir falhas e maneiras mais fáceis para chegar a está resolução.
    #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <locale.h> #include <string.h> typedef struct{ char nickUser[20]; char nickChar[20]; char senha[20]; char confirmaSenha[20]; }Player; int compararNickUser(Player aux[], int tam){ int i; for(i = 0; i<tam; i++) if(strcmp(aux[i].nickUser, aux[tam].nickUser) == 0){ printf("\n\nUsuario %s Não Disponível...\n", aux[tam].nickUser); printf("\nInforme outro usuario: "); fflush(stdin); scanf("%[^\n]", aux[tam].nickUser); return 0; } system("cls"); return 1; } int compararSenha(char string1[], char string2[]){ if(strcmp(string1, string2) != 0){ printf("Algo deu errado, as senhas não são iguais, por favor, tente mais uma vez\n"); printf("Tome cuidado com a sua senha, ela é muito importante!\n\n"); printf("Confirmação de Senha:"); fflush(stdin); scanf("%[^\n]", string2); return 0; } system("cls"); return 1; } int main(){ int count, qntdPlayer; Player players[5]; char stringaux[20]; FILE *Pfile; setlocale (LC_ALL,"Portuguese"); printf("\n\nPor favor, Informe quantos jogadores serão cadastrados(Limite de 5 jogadores): "); scanf("%d", &qntdPlayer); if (qntdPlayer < 1 || qntdPlayer > 5){ printf("\nNúmero de Cadastros Inválido!\n"); return 0; } for (count = 0; count < qntdPlayer; count++){ system("cls"); printf("Nome do Usuário:"); fflush(stdin); scanf("%[^\n]", players[count].nickUser); while(compararNickUser(players, count)!=1); printf("\nMuito bem, você usará esse nome para realizar o login no jogo!\nLogin: %s\n", players[count].nickUser); system("pause"); system("cls"); printf("Nome do Personagem:"); fflush(stdin); scanf("%[^\n]", players[count].nickChar); printf("\nPerfeito, é assim que seus amigos o reconhecerão!\nNick: %s\n", players[count].nickChar); system("pause"); system("cls"); printf("Senha: "); fflush(stdin); scanf("%[^\n]", players[count].senha); printf("Repita a senha para que ocorra a confirmação.\n\nConfirmação de Senha: "); fflush(stdin); scanf("%[^\n]", players[count].confirmaSenha); while(compararSenha(players[count].senha, players[count].confirmaSenha) != 1); printf("\nMais uma etapa concluida com louvor!\n\n"); system("pause"); system("cls"); } Pfile = fopen("texto.txt", "w"); if (Pfile == NULL){ printf("Erro na abertura do arquivo."); exit(0); } for (count = 0; count < qntdPlayer; count++) fprintf(Pfile, "\n\nNome: %s\nPersonagem: %s\nSenha: %s\n\n",players[count].nickUser, players[count].nickChar, players[count].senha); fclose(Pfile); return 0; } A lógica que utilizei pra resolver foi a seguinte : o usuário irá informar o nickuser, e logo após isso é chamada a função comparaNickUser dentro de um laço while, e ao entrar nessa função, é feito a comparação com o nickuser que o usuário escolheu, com todo o resto, e caso encontre um igual, será informado os dados novamente e retornará 0 para ser feito outra comparação.
    while(compararNickUser(players, count)!=1); Logo, só irá sair desse while quando o usuário informar um nickuser diferente de todos, ao contrario irá ficar chamando até a condição do while ser satisfeita( que no caso é quando entrar na função e não passar pelo if de igualdade, retornando 1 direto).
     
    E acabei fazendo outra função para compara a confirmação de senha, que utiliza a mesma lógica da função que acabei de explicar, e para seu código ficar completo só falta fazer a comparação nos nomes dos personagens, mas essa parte irei deixar para você tentar.
     
    Reforçando o que disse no começo: pode ter erros, pois não testei direito, e também pode haver meios mais fáceis, enfim, espero que isso possa te ajudar em algo!
  3. O post de Asrety em não sei pra que serve o comando FREAD foi marcado como solução   
    Estude sobre os comandos fwrite & fread que entenderá, fwrite = escrita, fread = leitura, e basicamente é isto que ele está fazendo, e o que está permitindo as 2 funções no mesmo arquivo é o modo que ele foi aberto...

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!