
Ramon_Machado
Membro Pleno-
Posts
43 -
Cadastrado em
-
Última visita
Reputação
6-
Recomendação de cooler silencioso
Ramon_Machado respondeu ao tópico de Ramon_Machado em Refrigeração e superaquecimento
Sim amigo, o cooler é para processador. Fora esse Lucifer K2, você recomenda outro? -
Olá, Gostaria da ajuda de vocês para a escolha de um cooler silencioso e na faixa até R$150,00 para meu PC. Eu tinha um Cooler Master TX3, só que hoje a ventoinha dele morreu, não funciona mais. Quem ajudar eu agradeço. PS.: O PC é só para uso em coisas básicas, nada de jogos.
-
Fazendo isso o arquivo de saída vai ficar cheio de linhas em brancos. E mesmo assim com duas linhas juntas.
-
@TYSQUARE89 consegui fazer a leitura corretamente do arquivo, muito obrigado. Mas agora tenho outro problema, na questão da ordenação. Necessariamente o arquivos dados.txt tem que ter uma linha em branco no final para a ordenação funcionar corretamente, senão houver essa linha linha em branco, ele acaba por juntar 2 linhas numa só. Se você puder me ajudar, eu agradeceria muito. Segue o código atualizado: #include <stdio.h> #include <stdlib.h> #include <string.h> #include <locale.h> typedef struct info_agenda { char linha[500]; char nome[100]; char sobrenome[100]; char rua[100]; char numero[100]; char complemento[100]; char bairro[100]; char cidade[100]; char estado[30]; char fone1[100]; char fone2[100]; } agenda; //Busca um contato e exibe na tela. void pesquisa(char pesq[]) { int contador=0; int achou=0; agenda agen[100]; FILE *arq_entrada; arq_entrada = fopen("dados.txt", "r"); // Abre o arquivo while(!feof(arq_entrada)) { fscanf(arq_entrada,"%[^,], %[^,], %[^,], %[^,], %[^,], %[^,], %[^,], %[^,], %[^,],\n", agen[contador].nome, agen[contador].rua, agen[contador].numero, agen[contador].complemento, agen[contador].bairro, agen[contador].cidade, agen[contador].estado, agen[contador].fone1, agen[contador].fone2); //if (strcmp (pesq, strupr(agen[contador].nome)) == 0) if (strstr (strupr(agen[contador].nome), pesq) != NULL) { printf("+++++++++++++++++++++++++++++++++++++++++++++++++++\n"); printf("Nome.......: %s\nLogradouro.: %s\nNumero.....: %s\nComplemento: %s\nBairro.....: %s\nCidade.....: %s\nEstado.....: %s\nFone 1.....: %s\nFone 2.....: %s\n", agen[contador].nome, agen[contador].rua, agen[contador].numero, agen[contador].complemento, agen[contador].bairro, agen[contador].cidade, agen[contador].estado, agen[contador].fone1, agen[contador].fone2); achou++; } contador++; //getchar(); } if(achou != 0); printf("+++++++++++++++++++++++++++++++++++++++++++++++++++\n"); if(achou == 0) printf("Contato inexistente!\n"); fclose(arq_entrada); } //Função que lista os contatos do arquivo. void listar_contatos() { int contador=0; agenda agen[100]; FILE *arq_entrada; FILE *arq_saida; arq_entrada = fopen("dados.txt", "r"); // Abre o arquivo arq_saida = fopen("agenda.txt", "w+"); // Escreve o arquivo if (arq_entrada == NULL) { printf("Arquivo de dados não localizado!\n\n"); system("pause"); } else { fprintf(arq_saida, "#################################################################\n" "#################### Listando os contatos #######################\n" "#################################################################\n\n"); ///while(fgets(linha, sizeof(linha), arq_entrada) != NULL && strcmp(linha, "#agenda.dat\n") !=0); while(!feof(arq_entrada)) { fscanf(arq_entrada,"%[^,], %[^,], %[^,], %[^,], %[^,], %[^,], %[^,], %[^,], %[^,],\n", agen[contador].nome, agen[contador].rua, agen[contador].numero, agen[contador].complemento, agen[contador].bairro, agen[contador].cidade, agen[contador].estado, agen[contador].fone1, agen[contador].fone2); printf("\n"); fprintf(arq_saida,"+++++++++++++++++++++++++++++++++++++++++++++++++++\n"); fprintf(arq_saida,"Nome.......: %s\nLogradouro.: %s\nNumero.....: %s\nComplemento: %s\nBairro.....: %s\nCidade.....: %s\nEstado.....: %s\nFone 1.....: %s\nFone 2.....: %s\n", agen[contador].nome, agen[contador].rua, agen[contador].numero, agen[contador].complemento, agen[contador].bairro, agen[contador].cidade, agen[contador].estado, agen[contador].fone1, agen[contador].fone2); contador++; } system("cls"); printf("O programa leu '%d' linha(s)\n", contador); fprintf(arq_saida,"+++++++++++++++++++++++++++++++++++++++++++++++++++\n"); //fprintf(arq_saida, "Total %-28s= %8.2f\n", espaco, totalGeral); } fclose(arq_entrada); fclose(arq_saida); } void ordenar() { int contador=0; int i,j; char temp[500]; agenda agen[1100]; FILE *arq_entrada; FILE *arq_saida; arq_entrada = fopen("dados.txt", "r"); // Abre o arquivo arq_saida = fopen("agenda_ordenada.txt", "w+"); // Escreve o arquivo if (arq_entrada == NULL) { printf("Arquivo de dados não localizado!\n\n"); system("pause"); } else { while(fgets(agen[contador].linha, sizeof(agen[contador].linha), arq_entrada) != NULL) { //printf("%s\n", agen[contador].linha); contador++; } ///ordenar for(i=1; i < contador; i++) { for (j=0; j < (contador -1); j++) { if(strcmp(agen[j].linha,agen[j+1].linha) > 0) { strcpy(temp,agen[j].linha); strcpy(agen[j].linha,agen[j+1].linha); strcpy(agen[j+1].linha,temp); } } }///fim do for ///imprimir for(i=0; i < contador; i++) { fprintf(arq_saida,"%s", agen[i].linha); } } printf("\nO programa leu '%d' linha(s)\n", contador); fclose(arq_entrada); fclose(arq_saida); }//fim da função ordenar int main() { setlocale(LC_ALL, "Portuguese"); int op; char nome[100]; while(op!=4) { printf("\n==============MENU==================\n"); printf("1-Listar contatos da agenda: \n"); printf("2-Buscar contatos da agenda: \n"); printf("3-Para ordenar a agenda:\n"); printf("4-Sair:\n"); scanf("%d",&op); if(op==1) { listar_contatos(); system("agenda.txt"); system("cls"); } if(op==2) { fflush(stdin); printf("\nEntre com o Nome: "); scanf("%[^\n]", nome); strupr(nome); fflush(stdin); system("cls"); pesquisa(nome); } if(op==3) { printf("Ordenando a agenda e saindo...\n"); ordenar(); system("agenda_ordenada.txt"); } if(op==4) { printf("Encerrando programa...\n"); system("pause"); exit(0); } }//fim do while de MENU return 0; }//fim da função main
-
Pessoal se vocês poderem me ajudar novamente eu agradeceria. Estou tentando fazer agora uma função de ordenação das strings em um arquivo separado. Mas acontece um erro ao tentar ler a linha do arquivo na função ORDENAR. Já até comentei o código na parte da ordenação, mas mesmo assim não encontro o erro. #include <stdio.h> #include <stdlib.h> #include <string.h> #include <locale.h> typedef struct info_agenda { char nome[100]; char sobrenome[100]; char rua[100]; char numero[100]; //int numero; char complemento[100]; char bairro[100]; char cidade[100]; char estado[30]; char fone1[100]; char fone2[100]; } agenda; //Busca um contato e exibe na tela. void pesquisa(char pesq[]) { int contador=0; int achou=0; agenda agen[100]; FILE *arq_entrada; arq_entrada = fopen("dados.txt", "r"); // Abre o arquivo while(!feof(arq_entrada)) { fscanf(arq_entrada,"%[^,], %[^,], %[^,], %[^,], %[^,], %[^,], %[^,], %[^,], %[^,],\n", agen[contador].nome, agen[contador].rua, agen[contador].numero, agen[contador].complemento, agen[contador].bairro, agen[contador].cidade, agen[contador].estado, agen[contador].fone1, agen[contador].fone2); //if (strcmp (pesq, strupr(agen[contador].nome)) == 0) if (strstr (strupr(agen[contador].nome), pesq) != NULL) { printf("+++++++++++++++++++++++++++++++++++++++++++++++++++\n"); printf("Nome.......: %s\nLogradouro.: %s\nNumero.....: %s\nComplemento: %s\nBairro.....: %s\nCidade.....: %s\nEstado.....: %s\nFone 1.....: %s\nFone 2.....: %s\n", agen[contador].nome, agen[contador].rua, agen[contador].numero, agen[contador].complemento, agen[contador].bairro, agen[contador].cidade, agen[contador].estado, agen[contador].fone1, agen[contador].fone2); achou++; } contador++; //getchar(); } if(achou != 0); printf("+++++++++++++++++++++++++++++++++++++++++++++++++++\n"); if(achou == 0) printf("Contato inexistente!\n"); fclose(arq_entrada); } //Função que lista os contatos do arquivo. void listar_contatos() { int contador=0; agenda agen[100]; FILE *arq_entrada; FILE *arq_saida; arq_entrada = fopen("dados.txt", "r"); // Abre o arquivo arq_saida = fopen("agenda.txt", "w+"); // Escreve o arquivo if (arq_entrada == NULL) { printf("Arquivo de dados não localizado!\n\n"); system("pause"); } else { fprintf(arq_saida, "#################################################################\n" "#################### Listando os contatos #######################\n" "#################################################################\n\n"); ///while(fgets(linha, sizeof(linha), arq_entrada) != NULL && strcmp(linha, "#agenda.dat\n") !=0); while(!feof(arq_entrada)) { fscanf(arq_entrada,"%[^,], %[^,], %[^,], %[^,], %[^,], %[^,], %[^,], %[^,], %[^,],\n", agen[contador].nome, agen[contador].rua, agen[contador].numero, agen[contador].complemento, agen[contador].bairro, agen[contador].cidade, agen[contador].estado, agen[contador].fone1, agen[contador].fone2); printf("\n"); fprintf(arq_saida,"+++++++++++++++++++++++++++++++++++++++++++++++++++\n"); fprintf(arq_saida,"Nome.......: %s\nLogradouro.: %s\nNumero.....: %s\nComplemento: %s\nBairro.....: %s\nCidade.....: %s\nEstado.....: %s\nFone 1.....: %s\nFone 2.....: %s\n", agen[contador].nome, agen[contador].rua, agen[contador].numero, agen[contador].complemento, agen[contador].bairro, agen[contador].cidade, agen[contador].estado, agen[contador].fone1, agen[contador].fone2); contador++; } printf("O programa leu '%d' linha(s)\n", contador); fprintf(arq_saida,"+++++++++++++++++++++++++++++++++++++++++++++++++++\n"); //fprintf(arq_saida, "Total %-28s= %8.2f\n", espaco, totalGeral); } fclose(arq_entrada); fclose(arq_saida); } void ordenar() { int contador=0; int i,j; char *linha[500]; char temp[500]; FILE *arq_entrada; FILE *arq_saida; arq_entrada = fopen("dados.txt", "r"); // Abre o arquivo arq_saida = fopen("agenda_ordenada.txt", "w+"); // Escreve o arquivo if (arq_entrada == NULL) { printf("Arquivo de dados não localizado!\n\n"); system("pause"); } else { while(!feof(arq_entrada)) { //fscanf(arq_entrada,"%[^\n]", linha[contador]); fgets(linha[contador],500, arq_entrada) != NULL; //printf(linha[contador]); printf("\n"); contador++; } //ordenar // for(i=0; i < contador; i++) // { // for (j=0; j < (contador-1); j++) // { // // if(strcmp(linha[j],linha[j+1]) > 0) // { // //strcpy(temp,linha[j]); // //strcpy(linha[j],linha[j+1]); // //strcpy(linha[j+1],temp); // // strcpy(temp,linha[j+1]); // strcpy(linha[j+1],linha[j]); // strcpy(linha[j],temp); // } // } // }//fim do for // // //imprime // for(i=0; i < contador; i++) // { // fprintf(arq_saida,"%s", linha[i]); // } } //printf("O programa leu '%d' linha(s)\n", contador); fclose(arq_entrada); fclose(arq_saida); }//fim da função ordenar int main() { setlocale(LC_ALL, "Portuguese"); int op; char nome[100]; while(op!=4) { printf("\n==============MENU==================\n"); printf("1-Listar contatos da agenda: \n"); printf("2-Buscar contatos da agenda: \n"); printf("3-Para ordenar a agenda:\n"); printf("4-Sair:\n"); scanf("%d",&op); if(op==1) { listar_contatos(); system("agenda.txt"); system("cls"); } if(op==2) { fflush(stdin); printf("\nEntre com o Nome: "); scanf("%[^\n]", nome); strupr(nome); fflush(stdin); pesquisa(nome); } if(op==3) { printf("Ordenando a agenda e saindo...\n"); ordenar(); exit(0); } if(op==4) { printf("Encerrando programa...\n"); system("pause"); exit(0); } }//fim do while de MENU return 0; }//fim da função main o arquivo de dados.txt é o mesmo do primeiro tópico.
-
Muito obrigado @isrnick consegui ajustar o código aqui com a sua dica. Até agora não encontrei nenhum erro, segue o código: #include <stdio.h> #include <stdlib.h> #include <string.h> #include <locale.h> typedef struct info_agenda { char nome[100]; char sobrenome[100]; char rua[100]; char numero[100]; //int numero; char complemento[100]; char bairro[100]; char cidade[100]; char estado[30]; char fone1[100]; char fone2[100]; } agenda; //Busca um contato e exibe na tela. void pesquisa(char pesq[]) { int contador=0; int achou=0; agenda agen[100]; FILE *arq_entrada; arq_entrada = fopen("dados.txt", "r"); // Abre o arquivo while(!feof(arq_entrada)) { fscanf(arq_entrada,"%[^,], %[^,], %[^,], %[^,], %[^,], %[^,], %[^,], %[^,], %[^,],\n", agen[contador].nome, agen[contador].rua, agen[contador].numero, agen[contador].complemento, agen[contador].bairro, agen[contador].cidade, agen[contador].estado, agen[contador].fone1, agen[contador].fone2); strupr(agen[contador].nome); if (strcmp(pesq, agen[contador].nome) == 0) { printf("+++++++++++++++++++++++++++++++++++++++++++++++++++\n"); printf("Nome.......: %s\nLogradouro.: %s\nNumero.....: %s\nComplemento: %s\nBairro.....: %s\nCidade.....: %s\nEstado.....: %s\nFone 1.....: %s\nFone 2.....: %s\n", agen[contador].nome, agen[contador].rua, agen[contador].numero, agen[contador].complemento, agen[contador].bairro, agen[contador].cidade, agen[contador].estado, agen[contador].fone1, agen[contador].fone2); achou++; } contador++; //getchar(); } if(achou == 0) printf("Cadastro inexistente!\n"); fclose(arq_entrada); } //Função que lista os contatos do arquivo. void listar_contatos() { int contador=0; agenda agen[100]; FILE *arq_entrada; FILE *arq_saida; arq_entrada = fopen("dados.txt", "r"); // Abre o arquivo arq_saida = fopen("agenda.txt", "w"); // Escreve o arquivo if (arq_entrada == NULL) { printf("Arquivo de dados não localizado!\n\n"); system("pause"); } else { fprintf(arq_saida, "#################################################################\n" "#################### Listando os contatos #######################\n" "#################################################################\n\n"); ///while(fgets(linha, sizeof(linha), arq_entrada) != NULL && strcmp(linha, "#agenda.dat\n") !=0); while(!feof(arq_entrada)) { fscanf(arq_entrada,"%[^,], %[^,], %[^,], %[^,], %[^,], %[^,], %[^,], %[^,], %[^,],\n", agen[contador].nome, agen[contador].rua, agen[contador].numero, agen[contador].complemento, agen[contador].bairro, agen[contador].cidade, agen[contador].estado, agen[contador].fone1, agen[contador].fone2); printf("\n"); fprintf(arq_saida,"+++++++++++++++++++++++++++++++++++++++++++++++++++\n"); fprintf(arq_saida,"Nome.......: %s\nLogradouro.: %s\nNumero.....: %s\nComplemento: %s\nBairro.....: %s\nCidade.....: %s\nEstado.....: %s\nFone 1.....: %s\nFone 2.....: %s\n", agen[contador].nome, agen[contador].rua, agen[contador].numero, agen[contador].complemento, agen[contador].bairro, agen[contador].cidade, agen[contador].estado, agen[contador].fone1, agen[contador].fone2); contador++; } printf("\nO programa leu '%d' linha(s)\n", contador); fprintf(arq_saida,"+++++++++++++++++++++++++++++++++++++++++++++++++++\n"); //fprintf(arq_saida, "Total %-28s= %8.2f\n", espaco, totalGeral); } fclose(arq_entrada); fclose(arq_saida); } int main() { char nome[100]; setlocale(LC_ALL, "Portuguese"); printf("\nEntre com o Nome: "); scanf("%[^\n]", nome); strupr(nome); fflush(stdin); pesquisa(nome); //listar_contatos(); //system("agenda.txt"); system("pause"); return 0; }
-
Estou tentando criar uma função que busca um nome numa estrutura de string, fazendo a comparação com strcmp. Só que não estou encontrando o meu erro. Ele não encontra o nome que eu quero e imprime na tela a primeira linha que ele leu no arquivo txt. O nome da função é 'pesquisa', quando busco pelo último nome do arquivo, que é 'andre', ela me retorna o primeiro nome da lista. Quem poder ajudar eu agradeço muito. segue o código: #include <stdio.h> #include <stdlib.h> #include <string.h> #include <locale.h> typedef struct info_agenda { char nome[100]; char sobrenome[100]; char rua[100]; char numero[100]; //int numero; char complemento[100]; char bairro[100]; char cidade[100]; char estado[30]; char fone1[100]; char fone2[100]; } agenda; //Busca um contato e exibe na tela. void pesquisa(char pesq[]) { int contador=0; agenda agen[100]; FILE *arq_entrada; arq_entrada = fopen("dados.txt", "r"); // Abre o arquivo while(!feof(arq_entrada)) { fscanf(arq_entrada,"%[^,], %[^,], %[^,], %[^,], %[^,], %[^,], %[^,], %[^,], %[^,],\n", agen[contador].nome, agen[contador].rua, agen[contador].numero, agen[contador].complemento, agen[contador].bairro, agen[contador].cidade, agen[contador].estado, agen[contador].fone1, agen[contador].fone2); //printf(agen[contador].nome); if (strcmp(pesq, agen[contador].nome) == 0) { printf("+++++++++++++++++++++++++++++++++++++++++++++++++++\n"); printf("Nome.......: %s\nLogradouro.: %s\nNumero.....: %s\nComplemento: %s\nBairro.....: %s\nCidade.....: %s\nEstado.....: %s\nFone 1.....: %s\nFone 2.....: %s\n", agen[contador].nome, agen[contador].rua, agen[contador].numero, agen[contador].complemento, agen[contador].bairro, agen[contador].cidade, agen[contador].estado, agen[contador].fone1, agen[contador].fone2); } else { printf("Cadastro inexistente!\n"); break; } contador++; getchar(); fclose(arq_entrada); } } //Função que lista os contatos do arquivo. void listar_contatos() { int contador=0; agenda agen[100]; FILE *arq_entrada; FILE *arq_saida; arq_entrada = fopen("dados.txt", "r"); // Abre o arquivo arq_saida = fopen("agenda.txt", "w"); // Escreve o arquivo if (arq_entrada == NULL) { printf("Arquivo de dados não localizado!\n\n"); system("pause"); } else { fprintf(arq_saida, "#################################################################\n" "#################### Listando os contatos #######################\n" "#################################################################\n\n"); ///while(fgets(linha, sizeof(linha), arq_entrada) != NULL && strcmp(linha, "#agenda.dat\n") !=0); while(!feof(arq_entrada)) { fscanf(arq_entrada,"%[^,], %[^,], %[^,], %[^,], %[^,], %[^,], %[^,], %[^,], %[^,],\n", agen[contador].nome, agen[contador].rua, agen[contador].numero, agen[contador].complemento, agen[contador].bairro, agen[contador].cidade, agen[contador].estado, agen[contador].fone1, agen[contador].fone2); printf("\n"); fprintf(arq_saida,"+++++++++++++++++++++++++++++++++++++++++++++++++++\n"); fprintf(arq_saida,"Nome.......: %s\nLogradouro.: %s\nNumero.....: %s\nComplemento: %s\nBairro.....: %s\nCidade.....: %s\nEstado.....: %s\nFone 1.....: %s\nFone 2.....: %s\n", agen[contador].nome, agen[contador].rua, agen[contador].numero, agen[contador].complemento, agen[contador].bairro, agen[contador].cidade, agen[contador].estado, agen[contador].fone1, agen[contador].fone2); contador++; } printf("\nO programa leu '%d' linha(s)\n", contador); fprintf(arq_saida,"+++++++++++++++++++++++++++++++++++++++++++++++++++\n"); //fprintf(arq_saida, "Total %-28s= %8.2f\n", espaco, totalGeral); } fclose(arq_entrada); fclose(arq_saida); } int main() { char nome[15]; setlocale(LC_ALL, "Portuguese"); printf("\nEntre com o Nome: "); scanf(" %s", nome); scanf("%[^\n]", nome); fflush(stdin); pesquisa(nome); //listar_contatos(); system("agenda.txt"); system("pause"); return 0; } Vou deixar o em anexo o arquivo txt. dados.txt
-
Fonte de alimentação ajustável 1,2 a 20V x 10A - Primeira parte - Montagem
Ramon_Machado respondeu ao tópico de faller em Eletrônica
faller, queria seguir o seu esquemático original da fonte por completo, porém não consegui o LM338. Posso substituir ele por um LM317 sem fazer alterações no resistor do Vin? -
Resolvido, terminei o código. #include <stdio.h>int main(){ int numero, n, vezes=0; int controle=0; int cont; for(cont=1; cont<=10; cont++) { scanf("%d", &numero); for(n=1; n<=numero; n++) { if(numero % n == 0) { vezes+=1; } } if(vezes == 2) { controle=controle+1; } vezes=0; } printf("Quantidade de primos: %d", controle); return 0;}
-
Pessoal, sou iniciante, e estou com dificuldades para criar este código em C. Se puderem, me deem uma força. O algoritmo deve receber 10 números inteiros e depois imprimir a quantidade de números primos que foram digitados pelo usuário. #include <stdio.h>#include <stdlib.h>int main(){ int i, vetor[10]; int div = 0; int n; int controle=0; for(i=0; i < 10; i++) { scanf("%d", &vetor[i]); } for(n=1; n < 10; n++) { if(vetor[i] % n == 0) { div++; } if(div == 2) { controle=controle+1; } } printf("%d", controle); return 0;}
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