Ir ao conteúdo
  • Cadastre-se

C Descobrir erro no código


Ilanez Santos
Ir à solução Resolvido por arfneto,

Posts recomendados

Olá novamente, estou aqui novamente para pedir ajuda para terminar meu código, falta só a parte em que a resposta dá correta, porém só dá resposta errada, poderiam me ajudar por favor ?

#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#include <string.h>
#include <time.h>
#include <windows.h>//para usar o Sleep()


// constantes :
const int SEM_ERRO = 0;
const int TAMANHO_MAXIMO = 50;


void jogo();
void pessoa();
void lugar();
void ano();
void coisa();
void escolha6();


int main (){

	
	setlocale(LC_ALL,"portuguese");
	
		char nome[20];
		
		printf("Escreva seu nome:");
		scanf("%i", &nome);
		fflush(stdin);
	
	int escolha;
	
		printf("\nMenu\n\n1-Novo jogo\n\n2-Explicação do jogo\n\n3-Ranking\n\n4-Sair do jogo\n\nDigite a opção:\n\n");
		scanf("%d", &escolha);
		fflush(stdin);
			
		switch(escolha){
			case 1:
				jogo();	
        	break;

			case 2: //monstra as regras do jogo 
				printf("\nRegras do jogo:\n\nSerá exibida uma dica, se o jogador escrever e acertar o perfil, ganha a rodada e ganha pontos dependendo da quantidadade de dicas acertarem.\nSe não souber, passa a vez para o próximo, que será exibido outra dica para tentar acertar o perfil.\n\nGanha o jogo quem fizer mais pontos ao fim da rodada, que acaba após as 5 dicas acabarem.\n\n");
				printf("\nObservação: escreva apenas em letras minúsculas.\n\n");	
			break;	
					
			case 3:
	 			imprime_ranking(); //chama a função de imprimir o ranking
			break;
			case 4:	
				exit(0); // encerra o jogo
			break;
			
			default :
				
				printf("\nOpção não disponivel\n\n");
				printf("\nDigite apenas uma opção de 1 a 4\n\n"); //mostrado quando a opção desejada não é válida
				
}			
	system("pause");
	return SEM_ERRO;
}

void jogo(){
	
		printf("\n*****Começar jogo*****\n\n");
		int opcao;
	
	printf("\n*****Começar jogo*****\n\n");
    printf("\rEscolha uma opção :\n\
            \r 1 - pessoa\n\
            \r 2 - lugar\n\
            \r 3 - ano\n\
            \r 4 - coisa\n\n");
    scanf("%d", &opcao);
    
		switch(opcao){
			
			case 1:
				pessoa();
			break;
			
			case 2:
				lugar();
			break;
			
			case 3:
				ano();
			break;
			
			case 4:
				coisa();
			break;
		}	
						
}

void pessoa (){
	
	int op2;
	
	char resp[50];
	
	
	printf("voce escolheu pessoa\n");
	printf("Escolha de 1 a 5:\n");
	scanf("%d", &op2);
	
	switch(op2){
		
		case 1:
			
			printf("\nDigite sua resposta\n");
			printf("sou rico e inteligente\n");
			scanf("%i", resp);
			fflush(stdin);
			
			if (resp == "batman")
				printf("resposta certa");
			if (resp != "batman")
				printf("resposta errada\n\n");
			
				
			printf("\nDigite sua resposta\n");
			printf("me visto de morcego\n");
			scanf("%d", resp);
			fflush(stdin);
			
			if (resp !="batman")
				printf("resposta errada\n");
			if (resp =="batman")
				printf("resposta certa\n");
				
			printf("\nDigite sua resposta\n");
			printf("meu mordomo se chama alfred\n");
			scanf("%d", resp);
			fflush(stdin);
			
			if (resp !="batman")
				printf("resposta errada\n");
			if (resp =="batman")
				printf("resposta certa\n");
				
			printf("\nDigite sua resposta\n");
			printf("meus inimigos são o pigunin e coringa\n");
			scanf("%d", resp);
			fflush(stdin);
			
			if (resp !="batman")
				printf("resposta errada\n");
			if (resp =="batman")
				printf("resposta certa\n");
				
			printf("\nDigite sua resposta\n");
			printf("moro em gotham city\n");
			scanf("%d", resp);
			
			fflush(stdin);
			if (resp !="batman")
				printf("resposta errada\n");
			if (resp =="batman")
				printf("resposta certa\n");
		break;
		
		case 2:
			
			printf("\nDigite sua resposta\n");
	
		break;
		
		case 3:
			
			printf("\nDigite sua resposta\n");
	
		break;
		
		case 4:
			
			printf("\nDigite sua resposta\n");
		
		
		case 5:
			pprintf("\nDigite sua resposta\n");
			
		break;
		
	}
	
}
	
void lugar(){
}

void ano(){
}

void coisa(){
}



void grava_ranking(){ //função para gravar o rank
	
	FILE *fa;
	char nome[10];
	 
	fa=fopen("ranking.txt","a");
	 
	 printf("Digite seu nome: ");
	 gets(nome);
	 
	 fprintf(fa,"\n %s %d",nome);
	 
	 fclose(fa);
	
}

void imprime_ranking(){ //função que imprime o rank
	
	FILE *fa;
     char c;
     
     system("cls");
 
     fa=fopen("ranking.txt","r");
	 if(fa==NULL)	{
	 	perror("Erro ao abrir");
	}
     
	 while( fscanf(fa,"%c",&c) != EOF)	{
	 	printf("%c",c);
	}

     fclose(fa);
     
     printf("\n\n\n");
     system("PAUSE");
}

 

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

@Ilanez Santos Não rodei o seu código porque tem algumas funções nele que não é do padrão C, então não tem no compilador que estou usando. 

 

Mas isto está errado,

if (resp !="batman")

 

Em C não dá para comprar strings assim. Para isso você deve usar uma função como a strcmp de string.h.

 

Isto também,

scanf("%d", resp);

 

O segundo parâmetro dessa função espera o endereço da variável, então faltou o operador &.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

3 minutos atrás, Midori disse:

@Ilanez Santos Não rodei o seu código porque tem algumas funções nele que não é do padrão C, então não tem no compilador que estou usando. 

 

Mas isto está errado,

if (resp !="batman")

 

Em C não dá para comprar strings assim. Para isso você deve usar uma função como a strcmp de string.h.

Eu usei mas mesmo assim continua dando erro. E não funciona de maneira correta, pode ser que seja por isso que está dando errado, poderia me dar um exemplo?

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@Ilanez Santos Agora vi que pprint é um erro de digitação e não outra função. Compilei seu código e retorno vários warnings. Tente corrigir o que comentei acima e veja se consegue resolver esses warnings mostrados pelo compilador.

  

13 minutos atrás, Ilanez Santos disse:

e mesmo assim vai para a linha de baixo.

Se isso quer dizer que está pulando algum scanf então é questão de buffer.

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#include <string.h>
#include <time.h>
#include <windows.h>//para usar o Sleep()


// constantes :
const int SEM_ERRO = 0;
const int TAMANHO_MAXIMO = 50;


void jogo();
void pessoa();
void lugar();
void ano();
void coisa();
void escolha6();


int main (){

	
	setlocale(LC_ALL,"portuguese");
	
		char nome[20];
		
		printf("Escreva seu nome:");
		scanf("%i", &nome);
		fflush(stdin);
	
	int escolha;
	
		printf("\nMenu\n\n1-Novo jogo\n\n2-Explicação do jogo\n\n3-Ranking\n\n4-Sair do jogo\n\nDigite a opção:\n\n");
		scanf("%d", &escolha);
		fflush(stdin);
			
		switch(escolha){
			case 1:
				jogo();	
        	break;

			case 2: //monstra as regras do jogo 
				printf("\nRegras do jogo:\n\nSerá exibida uma dica, se o jogador escrever e acertar o perfil, ganha a rodada e ganha pontos dependendo da quantidadade de dicas acertarem.\nSe não souber, passa a vez para o próximo, que será exibido outra dica para tentar acertar o perfil.\n\nGanha o jogo quem fizer mais pontos ao fim da rodada, que acaba após as 5 dicas acabarem.\n\n");
				printf("\nObservação: escreva apenas em letras minúsculas.\n\n");	
			break;	
					
			case 3:
	 			imprime_ranking(); //chama a função de imprimir o ranking
			break;
			case 4:	
				exit(0); // encerra o jogo
			break;
			
			default :
				
				printf("\nOpção não disponivel\n\n");
				printf("\nDigite apenas uma opção de 1 a 4\n\n"); //mostrado quando a opção desejada não é válida
				
}			
	system("pause");
	return SEM_ERRO;
}

void jogo(){
	
		printf("\n*****Começar jogo*****\n\n");
		int opcao;
	
	printf("\n*****Começar jogo*****\n\n");
    printf("\rEscolha uma opção :\n\
            \r 1 - pessoa\n\
            \r 2 - lugar\n\
            \r 3 - ano\n\
            \r 4 - coisa\n\n");
    scanf("%d", &opcao);
    
		switch(opcao){
			
			case 1:
				pessoa();
			break;
			
			case 2:
				lugar();
			break;
			
			case 3:
				ano();
			break;
			
			case 4:
				coisa();
			break;
		}	
						
}

void pessoa (){
	
	int op2;
	
	char resp[50];
	
	
	printf("voce escolheu pessoa\n");
	printf("Escolha de 1 a 5:\n");
	scanf("%d", &op2);
	
	switch(op2){
		
		case 1:
			
			printf("\nDigite sua resposta\n");
			printf("sou rico e inteligente\n");
			scanf("%i", resp);
			fflush(stdin);
			
			if (resp == "batman")
				printf("resposta certa");
			if (resp != "batman")
				printf("resposta errada\n\n");
			
				
			printf("\nDigite sua resposta\n");
			printf("me visto de morcego\n");
			scanf("%d", resp);
			fflush(stdin);
			
			if (resp !="batman")
				printf("resposta errada\n");
			if (resp =="batman")
				printf("resposta certa\n");
				
			printf("\nDigite sua resposta\n");
			printf("meu mordomo se chama alfred\n");
			scanf("%d", resp);
			fflush(stdin);
			
			if (resp !="batman")
				printf("resposta errada\n");
			if (resp =="batman")
				printf("resposta certa\n");
				
			printf("\nDigite sua resposta\n");
			printf("meus inimigos são o pigunin e coringa\n");
			scanf("%d", resp);
			fflush(stdin);
			
			if (resp !="batman")
				printf("resposta errada\n");
			if (resp =="batman")
				printf("resposta certa\n");
				
			printf("\nDigite sua resposta\n");
			printf("moro em gotham city\n");
			scanf("%d", resp);
			
			fflush(stdin);
			if (resp !="batman")
				printf("resposta errada\n");
			if (resp =="batman")
				printf("resposta certa\n");
		break;
		
		case 2:
			
			printf("\nDigite sua resposta\n");
	
		break;
		
		case 3:
			
			printf("\nDigite sua resposta\n");
	
		break;
		
		case 4:
			
			printf("\nDigite sua resposta\n");
		
		
		case 5:
			printf("\nDigite sua resposta\n");
			
		break;
		
	}
	
}
	
void lugar(){
}

void ano(){
}

void coisa(){
}



void grava_ranking(){ //função para gravar o rank
	
	FILE *fa;
	char nome[10];
	 
	fa=fopen("ranking.txt","a");
	 
	 printf("Digite seu nome: ");
	 gets(nome);
	 
	 fprintf(fa,"\n %s %d",nome);
	 
	 fclose(fa);
	
}

void imprime_ranking(){ //função que imprime o rank
	
	FILE *fa;
     char c;
     
     system("cls");
 
     fa=fopen("ranking.txt","r");
	 if(fa==NULL)	{
	 	perror("Erro ao abrir");
	}
     
	 while( fscanf(fa,"%c",&c) != EOF)	{
	 	printf("%c",c);
	}

     fclose(fa);
     
     printf("\n\n\n");
     system("PAUSE");
}

corrigido o pprintf, fora isso não dá erro, porém ainda sim continua sem funcionar corretmante.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@Ilanez Santos Faltou corrigir o que comentei sobre o scanf e a comparação das strings. Use strcmp em todas. Além disso substitua gets, no lugar use fgets ou scanf com a specificação do tamanho.

 

Veja a mensagem do compilador na linha do gets,

main.c:211:3: warning: ‘gets’ is deprecated [-Wdeprecated-declarations]
  211 |   gets(nome);
      |   ^~~~

 

O seu deve ter mostrado algo assim também.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

14 minutos atrás, Midori disse:

@Ilanez Santos Faltou corrigir o que comentei sobre o scanf e a comparação das strings. Use strcmp em todas. Além disso substitua gets, no lugar use fgets ou scanf com a specificação do tamanho.

 

Veja a mensagem do compilador na linha do gets,

main.c:211:3: warning: ‘gets’ is deprecated [-Wdeprecated-declarations]
  211 |   gets(nome);
      |   ^~~~

 

O seu deve ter mostrado algo assim também.

#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#include <string.h>
#include <time.h>
#include <windows.h>//para usar o Sleep()


// constantes :
const int SEM_ERRO = 0;
const int TAMANHO_MAXIMO = 50;


void jogo();
void pessoa();
void lugar();
void ano();
void coisa();
void escolha6();


int main (){

	
	setlocale(LC_ALL,"portuguese");
	
		char nome[20];
		
		printf("Escreva seu nome:");
		scanf("%i", &nome);
		fflush(stdin);
	
	int escolha;
	
		printf("\nMenu\n\n1-Novo jogo\n\n2-Explicação do jogo\n\n3-Ranking\n\n4-Sair do jogo\n\nDigite a opção:\n\n");
		scanf("%d", &escolha);
		fflush(stdin);
			
		switch(escolha){
			case 1:
				jogo();	
        	break;

			case 2: //monstra as regras do jogo 
				printf("\nRegras do jogo:\n\nSerá exibida uma dica, se o jogador escrever e acertar o perfil, ganha a rodada e ganha pontos dependendo da quantidadade de dicas acertarem.\nSe não souber, passa a vez para o próximo, que será exibido outra dica para tentar acertar o perfil.\n\nGanha o jogo quem fizer mais pontos ao fim da rodada, que acaba após as 5 dicas acabarem.\n\n");
				printf("\nObservação: escreva apenas em letras minúsculas.\n\n");	
			break;	
					
			case 3:
  				
			break;
			case 4:	
				exit(0); // encerra o jogo
			break;
			
			default :
				
				printf("\nOpção não disponivel\n\n");
				printf("\nDigite apenas uma opção de 1 a 4\n\n"); //mostrado quando a opção desejada não é válida
				
}			
	system("pause");
	return SEM_ERRO;
}

void jogo(){
	
		printf("\n*****Começar jogo*****\n\n");
		int opcao;
	
	printf("\n*****Começar jogo*****\n\n");
    printf("\rEscolha uma opção :\n\
            \r 1 - pessoa\n\
            \r 2 - lugar\n\
            \r 3 - ano\n\
            \r 4 - coisa\n\n");
    scanf("%d", &opcao);
    
		switch(opcao){
			
			case 1:
				pessoa();
			break;
			
			case 2:
				lugar();
			break;
			
			case 3:
				ano();
			break;
			
			case 4:
				coisa();
			break;
		}	
						
}

void pessoa (){
	
	int op2;
	char resp[50];
	
	
	printf("voce escolheu pessoa\n");
	printf("Escolha de 1 a 5:\n");
	scanf("%d", &op2);
	
	switch(op2){
		
		case 1:
			
			printf("\nDigite sua resposta\n");
			printf("sou rico e inteligente\n");
			scanf("%i", resp);
			fflush(stdin);
			
			if (strcmp(resp,"fim") == 0)
				printf("resposta certa");
			if (strcmp(resp,"fim") == 0)
				printf("resposta errada\n\n");
			
				
			printf("\nDigite sua resposta\n");
			printf("me visto de morcego\n");
			scanf("%d", resp);
			fflush(stdin);
			
			if (strcmp(resp,"fim") == 0)
				printf("resposta errada\n");
			if (strcmp(resp,"fim") == 0)
				printf("resposta certa\n");
				
			printf("\nDigite sua resposta\n");
			printf("meu mordomo se chama alfred\n");
			scanf("%d", resp);
			fflush(stdin);
			
			if (strcmp(resp,"fim") == 0)
				printf("resposta errada\n");
			if (strcmp(resp,"fim") == 0))
				printf("resposta certa\n");
				
			printf("\nDigite sua resposta\n");
			printf("meus inimigos são o pigunin e coringa\n");
			scanf("%d", resp);
			fflush(stdin);
			
			if (strcmp(resp,"fim") == 0)
				printf("resposta errada\n");
			if (strcmp(resp,"fim") == 0)
				printf("resposta certa\n");
				
			printf("\nDigite sua resposta\n");
			printf("moro em gotham city\n");
			scanf("%d", resp);
			
			fflush(stdin);
			if (strcmp(resp,"fim") == 0)
				printf("resposta errada\n");
			if (strcmp(resp,"fim") == 0)
				printf("resposta certa\n");
		break;
		
		case 2:
			
			printf("\nDigite sua resposta\n");
	
		break;
		
		case 3:
			
			printf("\nDigite sua resposta\n");
	
		break;
		
		case 4:
			
			printf("\nDigite sua resposta\n");
		
		
		case 5:
			printf("\nDigite sua resposta\n");
			
		break;
		
	}
	
}
	
void lugar(){
}

void ano(){
}

void coisa(){
}

 

Substirui e tirei o que estva dando erro, era a função imprimeranking();, não algo para me preoucupar no momento.

  • Amei 1
Link para o comentário
Compartilhar em outros sites

@Ilanez Santos     para ler string você precisa usar o especificador de tipo "s" ,  e para comparar use a função strcmp , que pode ser assim :

scanf("%s", resp);                  /// ler string  eh com s
fflush(stdin);                      /// limpa o buffer de saida
if (strcmp(resp , "batman" ) == 0)  /// em C use strcmp para comparar strings
  printf("resposta certa");
if ( strcmp(resp , "batman") != 0)
  printf("resposta errada\n\n");

 

Link para o comentário
Compartilhar em outros sites

3 minutos atrás, devair1010 disse:

@Ilanez Santos     para ler string você precisa usar o especificador de tipo "s" ,  e para comparar use a função strcmp , que pode ser assim :

scanf("%s", resp);                  /// ler string  eh com s
fflush(stdin);                      /// limpa o buffer de saida
if (strcmp(resp , "batman" ) == 0)  /// em C use strcmp para comparar strings
  printf("resposta certa");
if ( strcmp(resp , "batman") != 0)
  printf("resposta errada\n\n");

 

com essa parte, aparece a resposta certa, porém ainda sim continua o programa, quero parar ele, posso usar o return0?

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

9 minutos atrás, Ilanez Santos disse:
if (strcmp(resp,"fim") == 0)
	printf("resposta certa");
if (strcmp(resp,"fim") == 0)
	printf("resposta errada\n\n");

 

Essa parte não faz sentido.

 

No lugar segundo if devia ser apenas else, não?

 

if(strcmp(resp,"fim") == 0){
	printf("resposta certa");
}else{
	printf("resposta errada\n\n");
}

 

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

3 minutos atrás, Midori disse:

Essa parte não faz sentido.

 

No segundo if devia ser apenas else, não?

 

@Midori Não vi nessecidade, está funcionando assim, se por else vai acabar saindo as duas respostas, eu testei aqui, o != já diz que se for diferente vai sair outra resposta.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

6 minutos atrás, Ilanez Santos disse:

Não vi nessecidade, está funcionando assim, se por else vai acabar saindo as duas respostas, eu testei aqui, o != já diz que se for diferente vai sair outra resposta.

Não é questão de necessidade, da forma que fez está errado.

 

A função strcmp retorna 0 (zero) se as strings foram iguais.

 

O que está fazendo é mostrando a mensagem "resposta errada" e "resposta certa" para o mesmo critério.

 

Com o operador != resolve, embora acho mais simples com else, mas veja que você usou apenas ==.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

11 minutos atrás, Midori disse:

Não é questão de necessidade, da forma que fez está errado.

 

A função strcmp retorna 0 (zero) se as strings foram iguais.

 

O que está fazendo é mostrando a mensagem "resposta errada" e "resposta certa" para o mesmo critério.

 

Com o operador != resolve, embora acho mais simples com else, mas veja que você usou apenas ==.

Como funcionou não vou mexer muito, resolveu o problema maior que eu tinha, que era esse, agora o outro problema é acrescentar pontuação e gerar um ranking em txt. Alguma idea de como fazer ?

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Solução
56 minutos atrás, Ilanez Santos disse:

E não funciona de maneira correta, pode ser que seja por isso que está dando errado

 

É um jeito de ver as coisas.

 

Mas o que acontece é que como você escreveu está errado. E por isso está dando errado. Faz sentido 🤔

 

Em C não se pode comparar strings assim, com já foi explicado acima.

 

Seu programa pode até acabar funcionando assim, mas está muito frágil. Não está bom e não vai nem mesmo funcionar em muitos ambientes. Muitos dos supostos "erros"  de que vou falar são comuns e parecem inevitáveis. Deve vir da maneira incrível como ensinam e escrevem sobre C e linguagens em geral hoje em dia.

 

Sobre isso por exemplo

 

// constantes :
const int SEM_ERRO = 0;
const int TAMANHO_MAXIMO = 50;


void jogo();
void pessoa();
void lugar();
void ano();
void coisa();
void escolha6();


int main (){

 

  • nunca use void. Retorne algo. E passe argumentos. Todas essas 6 funções são um desastre em termos de flexibilidade e manutenção e não rodaria um programa assim em nenhuma empresa ou escola com um mínimo de critério.
  • não use valores globais. NUNCA. Por nada.
  • Para essas constantes é mais inteligente usar #define.
  • NUNCA use gets(). Foi marcada como obsoleta há mais de uma década além de ser inconveniente. use fgets()
  • não use fflush() se não souber exatamente o que é. E quando souber verá que só está definido para a saída
  • TESTE o retorno de scanf(). É ingênuo seguir sem testar. Leia o manual
  • Não use system(). Não estará fazendo nada. Não estará aprendendo nada. 
  • Não use uma pausa no fim do programa. Se faz isso por causa do IDE apenas programe o IDE para não fechar a console ao final da execução. E se ele não tiver essa opção use um melhor. São grátis hoje em dia.
  •     return SEM_ERRO; 

    Se acha return 0; pouco expressivo entenda que C tem as constantes EXIT_SUCCESS e EXIT_FAILURE exatamente para isso e conhecidas em toda parte. Prefira essas. Seu programa só tem esse return. Acha que vale a pena se preocupar com isso?

seu programa tem 6 funções void xxx() pouco úteis. Porque não tem uma 

    int menu();

  

por exemplo?

 

		printf("\nMenu\n\n1-Novo jogo\n\n2-Explicação do jogo\n\n3-Ranking\n\n4-Sair do jogo\n\nDigite a opção:\n\n");

 

Não escreva assim...

Compare:

	printf("\
\n\
Menu\
\n\
\n\
1-Novo jogo\
\n\
\n\
2-Explicação do jogo\
\n\
\n\
3-Ranking\
\n\
\n\
4-Sair do jogo\
\n\
\n\
Digite a opção:  ");

 

Assim é mais fácil de ler e de alinhar o texto...

E não mude de linha antes de ler uma resposta. Não é boa prática. Em geral as pessoas esperam o cursor logo após a pergunta.

 

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

@Ilanez Santos Recomendo você começar novamente tem muitos erros que não dá para ignorar por hora.

35 minutos atrás, Ilanez Santos disse:

problema maior que eu tinha, que era esse, agora o outro problema é acrescentar pontuação e gerar um ranking em txt. Alguma idea de como fazer ?

um exemplo de como você pode estar fazendo.

exemplo.zip

  • Curtir 1
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!