Ir ao conteúdo
  • Cadastre-se

johnkaos

Membro Pleno
  • Posts

    25
  • Cadastrado em

  • Última visita

Reputação

10

1 Seguidor

  1. @devair1010 Depois de tanto pesquiser encontrei o erro... FILE* novoArquivo = fopen("temp.txt", "w"); essa é a linha do erro,pois eu estava criando um arquivo só pra escrita,porém o novo arquivo iria substituir o antigo,e ele seria pra leitura e escrita,então o certo seria: FILE* novoArquivo = fopen("temp.txt", "a+b");
  2. @devair1010 Não é o erro ainda continua o mesmo depois que uso remover,no primeiro contato da lista ela funciona normalmente: porém do segundo em diante:
  3. #include <stdio.h> #include <string.h> #include <stdlib.h> #include <windows.h> #include <locale.h> void flush_in() { int ch; while ( ( ch = fgetc ( stdin ) ) != '\n' && ch != EOF) {} } struct Cadastro { char nome[100]; char endereco[100]; char bairro[100]; char cidade[30]; char estado[30]; char cep[10]; char tel[20]; char cel[20]; char LF; }; FILE *arquivo; struct Cadastro C; char menu() { system ("cls"); printf("______________________________ *** AGENDA ***________________________________\n\n"); printf("1- Cadastrar\n"); printf("2- Listar\n"); printf("3- Buscar\n"); printf("4- Alterar\n"); printf("5- Deletar\n"); printf("6- Sair\n\n"); printf("\nOpção:\n"); system ("color c"); return (getchar()); } /*Cadastro de Clientes*/ void cad() { C = (struct Cadastro){0}; arquivo = fopen ("agenda.txt", "a+b"); if(arquivo==NULL) { printf("\nErro ao abrir o arquivo \n"); return; } printf("\n\nCadastro de contatos:\n"); printf("\n\nNome:"); fflush(stdin); gets(C.nome); printf("\nEndereço:"); fflush(stdin); gets(C.endereco); printf("\nBairro:"); fflush(stdin); gets(C.bairro); printf("\nCidade:"); fflush(stdin); gets(C.cidade); printf("\nEstado:"); fflush(stdin); gets(C.estado); printf("\nCep:"); fflush(stdin); gets(C.cep); printf("\nTelefone Fixo:"); fflush(stdin); gets(C.tel); printf("\nCelular:"); fflush(stdin); gets(C.cel); C.LF= getchar(); fwrite(&C, sizeof(C), 1, arquivo); getchar(); fclose(arquivo); } /*Listar*/ void listar() { int i=0; arquivo= fopen("agenda.txt","rw"); if(arquivo==NULL) { printf("Erro ao abrir o arquivo"); return; } fread(&C, sizeof(C), 1, arquivo); printf("\nRelação de Contatos:\n"); while(!feof(arquivo)) { i++; printf("\n"); printf("\nNome: %s\nEndereco: %s\nBairro: %s\nCidade: %s\nEstado: %s\nCep: %s\nTelefone: %s\nCelular: %s", C.nome, C.endereco, C.bairro, C.cidade, C.estado, C.cep, C.tel, C.cel); printf("\n"); fread(&C, sizeof(C), 1, arquivo); if(feof(arquivo) || (i==20)) { break; getchar(); getchar(); } } fclose(arquivo); } /*Buscar Clientes*/ void buscar() { int aux; char opc; char nome[100]; char cidade[30]; char estado[30]; arquivo = fopen("agenda.txt","rw"); if(arquivo==NULL) { printf("\nErro ao abrir o arquivo\n"); } system ("cls"); printf("______________________________ *** CONSULTAS ***________________________________\n\n"); printf("1- Busca por Nome\n"); printf("2- Busca por Cidade\n"); printf("3- Busca por Estado\n"); system("color d"); printf("opção:"); getchar(); opc = getchar(); switch (opc) { case '1': printf("\n\nDigite o nome que deseja buscar:"); fflush(stdin); gets(nome); /*Busca(insc)*/ fread(&C, sizeof(C), 1, arquivo); while(!feof(arquivo)) { if(strcmp(nome,C.nome) == 0) { printf("Nome: %s", C.nome); printf("\nEndereço: %s\n", C.endereco); printf("Bairro: %s\n", C.bairro); printf("Cidade: %s\n", C.cidade); printf("Estado: %s\n", C.estado); printf("Cep: %s\n", C.cep); printf("Telefone: %s\n", C.tel); printf("Celular: %s\n", C.cel); printf("\n"); } fread(&C, sizeof(C), 1, arquivo); } fclose(arquivo); break; case '2': printf("\n\nCidade:"); fflush(stdin); gets(cidade); printf("\n"); /*Busca(insc)*/ fread(&C, sizeof(C), 1, arquivo); while(!feof(arquivo)) { if(strcmp(cidade,C.cidade) == 0) { printf("Nome: %s", C.nome); printf("\nEndereço: %s\n", C.endereco); printf("Bairro: %s\n", C.bairro); printf("Cidade: %s\n", C.cidade); printf("Estado: %s\n", C.estado); printf("Cep: %s\n", C.cep); printf("Telefone: %s\n", C.tel); printf("Celular: %s\n", C.cel); printf("\n"); fread(&C, sizeof(C), 1, arquivo); } else { fread(&C, sizeof(C), 1, arquivo); } } fclose(arquivo); break; case '3': printf("\n\nEstado:"); fflush(stdin); gets(estado); printf("\n"); /*Busca(insc)*/ fread(&C, sizeof(C), 1, arquivo); while(!feof(arquivo)) { if(strcmp(estado,C.estado) == 0) { printf("Nome: %s", C.nome); printf("\nEndereço: %s\n", C.endereco); printf("Bairro: %s\n", C.bairro); printf("Cidade: %s\n", C.cidade); printf("Estado: %s\n", C.estado); printf("Cep: %s\n", C.cep); printf("Telefone: %s\n", C.tel); printf("Celular: %s\n", C.cel); printf("\n"); fread(&C, sizeof(C), 1, arquivo); } else { fread(&C, sizeof(C), 1, arquivo); } } fclose(arquivo); break; } } void alterar() { int opt; int posicao = 0; int achou = 0; char nomes[100]; flush_in(); printf("\nAlteracao de Cadastro\n"); arquivo= fopen("agenda.txt","r+b"); if(arquivo==NULL) { printf("Erro ao abrir o arquivo!"); return; } printf("Digite o nome do contato:"); gets(nomes); system("cls"); opt = -1; while(fread(&C,sizeof(C), 1, arquivo)== 1 && opt!=0) { if(strcmp(nomes,C.nome)== 0) { printf("Nome: %s", C.nome); printf("\nEndereço: %s\n", C.endereco); printf("Bairro: %s\n", C.bairro); printf("Cidade: %s\n", C.cidade); printf("Estado: %s\n", C.estado); printf("Cep: %s\n", C.cep); printf("Telefone: %s\n", C.tel); printf("Celular: %s\n", C.cel); printf("\n\nVocê quer mesmo editar este contato? "); printf("\n1 - Sim\n2 - Não \n"); scanf("%d", &opt); flush_in(); system("cls"); switch(opt) { case 1: printf("\n\nNome:"); fflush(stdin); gets(C.nome); printf("\nEndereco:"); fflush(stdin); gets(C.endereco); printf("\nBairro:"); fflush(stdin); gets(C.bairro); printf("\nCidade:"); fflush(stdin); gets(C.cidade); printf("\nEstado:"); fflush(stdin); gets(C.estado); printf("\nCep:"); fflush(stdin); gets(C.cep); printf("\nTelefone Fixo:"); fflush(stdin); gets(C.tel); printf("\nCelular:"); fflush(stdin); gets(C.cel); fseek(arquivo, posicao, SEEK_SET); achou = fwrite(&C,sizeof(C),1,arquivo) == sizeof(C); break; case 2: printf("\n\nVocê cancelou a alteração do Contato!!\n"); break; } } posicao = posicao + sizeof(C); fseek(arquivo, posicao, SEEK_SET); } opt = -1; fclose(arquivo); } void remover() { FILE* arquivo = fopen("agenda.txt", "rw"); if(arquivo==NULL) { printf("Erro ao abrir o arquivo!"); return; } FILE* novoArquivo = fopen("temp.txt", "w"); char nomess[100]; printf("Digite o nome do usuário a ser excluido: "); fflush(stdin); gets(nomess); fread(&C, sizeof(C), 1, arquivo); while(!feof(arquivo)) { if(strcmp(nomess, C.nome)!=0) { fwrite(&C, sizeof(C), 1, novoArquivo); } fread(&C, sizeof(C), 1, arquivo); } fclose(novoArquivo); fclose(arquivo); remove("agenda.txt"); rename("temp.txt", "agenda.txt"); } void sair() { int i; printf("\nFinalizandoo"); for (i=0; i<35; i++) { _sleep(100); system ("color a"); printf(". "); } exit(1); } int main() { setlocale(LC_ALL, "Portuguese"); char op; while(op!='s') { op = menu(); switch(op) { case'1': cad(); break; case'2': listar(); break; case'3': buscar(); break; case'4': alterar(); break; case'5': remover(); break; case'6': sair(); break; } getchar(); getchar(); } } @devair1010 Esse código foi a versão final que eu fiz,porém ele se encontra com o seguinte bug: tenho os contatos A B C D todas as funções funcionam normalmente,usadas em ordem. porém se usar a função remover,antes da alterar,quando vou usar a função alterar,ela simplesmente só lê o contato A,se buscar o contato B,C,D, ela não retorrna eles,alias,não retorna nada.
  4. @mauro_b Pode me ajudar com um problema sobre o codigo?
  5. @mauro_b @devair1010 Aparentemente consegui resolver. Mudei o While disso: while(!feof(arquivo)) { fread(&C, sizeof(C), 1, arquivo); if(strcmp(nomess, C.nome) != 0) { fwrite(&C, sizeof(C), 1, novoArquivo); fread(&C, sizeof(C), 1, arquivo); } else { break; getchar(); } } adicionado 0 minutos depois para isso: while(!feof(arquivo)) { fread(&C, sizeof(C), 1, arquivo); if(strcmp(nomess, C.nome)) { fwrite(&C, sizeof(C), 1, novoArquivo); fread(&C, sizeof(C), 1, arquivo); } }
  6. @mauro_b um problema que estou enfrentando agr,que não tinha percebido é: tenho os contatos A,B,C. Se usar a função Remover,para apagar o A,ela apaga todos os outros dois contatos... adicionado 41 minutos depois Porém isto não ocorre sempre... adicionado 50 minutos depois @mauro_b @devair1010 A função está totalmente imprevisível...as vezes funciona corretamente,as vezes não... tenho A B C D os erros mais comuns são: se quero deletar A,todos os outros também são deletados.. se quero deletar C,B,D,todos menos A são deletados... e as vezes ela funciona normal...
  7. @devair1010 esse é o código,é uma Agenda,o contato que falo é,quando preencho cada lista,as vezes fica restos de variaveis no outro,como citei em cima,se preencher um contato com johnkaos como nome,as vezes outro,como por exemplo o nome julia,fica com restos do nome,no arquivo txt e vira 'julia aos'... Eu quero organizar que cada contato fique em uma linha,porém com fgets,não iam virar colunas para cada membro da struct? #include <stdio.h> #include <string.h> #include <stdlib.h> #include <windows.h> #include <locale.h> void flush_in() { int ch; while ( ( ch = fgetc ( stdin ) ) != '\n' && ch != EOF) {} } struct Cadastro { int num; char nome[100]; char endereco[100]; char bairro[100]; char cidade[30]; char estado[30]; char cep[10]; char tel[20]; char cel[20]; }; FILE *arquivo; struct Cadastro C; char menu() { system ("cls"); printf("______________________________ *** AGENDA ***________________________________\n\n"); printf("1- Cadastrar\n"); printf("2- Listar\n"); printf("3- Buscar\n"); printf("4- Alterar\n"); printf("5- Deletar\n"); printf("6- Sair\n\n"); printf("\nOpção:\n"); system ("color c"); return (getchar()); } /* Buscar Clientes*/ char buscanome(char n[100]) { fread(&C, sizeof(C), 1, arquivo); while(!feof(arquivo)) { if(strcmp(C.nome,n) == 0) { fseek(arquivo, sizeof(C), SEEK_CUR); return 1; } fread(&C, sizeof(C), 1, arquivo); } return 0; } char buscacidade(char c[30]) { fread(&C, sizeof(C), 1, arquivo); while(!feof(arquivo)) { if(strcmp(C.cidade,c) == 0) { fseek(arquivo, sizeof(C), SEEK_CUR); return 1; } fread(&C, sizeof(C), 1, arquivo); } return 0; } char buscaestado(char e[30]) { fread(&C, sizeof(C), 1, arquivo); while(!feof(arquivo)) { if(strcmp(C.estado,e) == 0) { fseek(arquivo, sizeof(C), SEEK_CUR); return 1; } fread(&C, sizeof(C), 1, arquivo); } return 0; } /*Cadastro de Clientes*/ void cad() { arquivo = fopen ("agenda.txt", "a+b"); if(arquivo==NULL) { printf("\nErro ao abrir o arquivo \n"); return; } C.num++; printf("\n\nNome:"); fflush(stdin); gets(C.nome); printf("\nEndereço:"); fflush(stdin); gets(C.endereco); printf("\nBairro:"); fflush(stdin); gets(C.bairro); printf("\nCidade:"); fflush(stdin); gets(C.cidade); printf("\nEstado:"); fflush(stdin); gets(C.estado); printf("\nCep:"); fflush(stdin); gets(C.cep); printf("\nTelefone Fixo:"); fflush(stdin); gets(C.tel); printf("\nCelular:"); fflush(stdin); gets(C.cel); fwrite(&C, sizeof(C), 1, arquivo); getchar(); fclose(arquivo); } /*Listar*/ void listar() { int i=0; arquivo= fopen("agenda.txt","rw"); if(arquivo==NULL) { printf("Erro ao abrir o arquivo"); return; } fread(&C, sizeof(C), 1, arquivo); printf("\nRelação de Clientes:\n"); while(!feof(arquivo)) { i++; printf("\n"); printf("\nNome: %s\nEndereco: %s\nBairro: %s\nCidade: %s\nEstado: %s\nCep: %s\nTelefone: %s\nCelular: %s", C.nome, C.endereco, C.bairro, C.cidade, C.estado, C.cep, C.tel, C.cel); printf("\n"); fread(&C, sizeof(C), 1, arquivo); if(feof(arquivo) || (i==20)) { break; getchar(); getchar(); } } fclose(arquivo); } /*Buscar Clientes*/ void buscar() { int aux; char opc; char nome[100]; char cidade[30]; char estado[30]; arquivo = fopen("agenda.txt","rw"); if(arquivo==NULL) { printf("\nErro ao abrir o arquivo\n"); } system ("cls"); printf("______________________________ *** CONSULTAS ***________________________________\n\n"); printf("1- Busca por Nome\n"); printf("2- Busca por Cidade\n"); printf("3- Busca por Estado\n"); system("color d"); printf("opção:"); getchar(); opc = getchar(); switch (opc) { case '1': printf("\n\nNome:"); fflush(stdin); gets(nome); /*Busca(insc)*/ if(buscanome(nome) == 0) { printf("\nNome inválido\n"); } else { fread(&C, sizeof(C), 1, arquivo); printf("Nome: %s", C.nome); printf("\nEndereço: %s\n", C.endereco); printf("Bairro: %s\n", C.bairro); printf("Cidade: %s\n", C.cidade); printf("Estado: %s\n", C.estado); printf("Cep: %s\n", C.cep); printf("Telefone: %s\n", C.tel); printf("Celular: %s\n", C.cel); getchar(); getchar(); } fclose(arquivo); break; case '2': printf("\n\nCidade:"); fflush(stdin); gets(cidade); printf("\n"); /*Busca(insc)*/ fread(&C, sizeof(C), 1, arquivo); while(!feof(arquivo)) { if(strcmp(cidade,C.cidade) == 0) { printf("Nome: %s", C.nome); printf("\nEndereço: %s\n", C.endereco); printf("Bairro: %s\n", C.bairro); printf("Cidade: %s\n", C.cidade); printf("Estado: %s\n", C.estado); printf("Cep: %s\n", C.cep); printf("Telefone: %s\n", C.tel); printf("Celular: %s\n", C.cel); printf("\n"); fread(&C, sizeof(C), 1, arquivo); } else { break; getchar(); } } fclose(arquivo); break; case '3': printf("\n\nEstado:"); fflush(stdin); gets(estado); printf("\n"); /*Busca(insc)*/ fread(&C, sizeof(C), 1, arquivo); while(!feof(arquivo)) { if(strcmp(estado,C.estado) == 0) { printf("Nome: %s", C.nome); printf("\nEndereço: %s\n", C.endereco); printf("Bairro: %s\n", C.bairro); printf("Cidade: %s\n", C.cidade); printf("Estado: %s\n", C.estado); printf("Cep: %s\n", C.cep); printf("Telefone: %s\n", C.tel); printf("Celular: %s\n", C.cel); printf("\n"); fread(&C, sizeof(C), 1, arquivo); } else { break; getchar(); } } fclose(arquivo); break; } } void alterar() { int opt; int posicao = 0; int achou = 0; char nomes[100]; flush_in(); printf("\nAlteracao de Cadastro\n"); printf("Digite o nome do contato:"); gets(nomes); arquivo= fopen("agenda.txt","r+b"); if(arquivo==NULL) { printf("Erro ao abrir o arquivo"); return; } system("cls"); opt = -1; while(fread(&C,sizeof(C), 1, arquivo)== 1 && opt!=0) { if(strcmp(nomes,C.nome)== 0) { printf("Nome: %s", C.nome); printf("\nEndereço: %s\n", C.endereco); printf("Bairro: %s\n", C.bairro); printf("Cidade: %s\n", C.cidade); printf("Estado: %s\n", C.estado); printf("Cep: %s\n", C.cep); printf("Telefone: %s\n", C.tel); printf("Celular: %s\n", C.cel); printf("\n\nVocê quer mesmo editar este contato? "); printf("\n1 - Sim\n2 - Não \n"); scanf("%d", &opt); flush_in(); system("cls"); switch(opt) { case 1: printf("\n\nNome:"); fflush(stdin); gets(C.nome); printf("\nEndereco:"); fflush(stdin); gets(C.endereco); printf("\nBairro:"); fflush(stdin); gets(C.bairro); printf("\nCidade:"); fflush(stdin); gets(C.cidade); printf("\nEstado:"); fflush(stdin); gets(C.estado); printf("\nCep:"); fflush(stdin); gets(C.cep); printf("\nTelefone Fixo:"); fflush(stdin); gets(C.tel); printf("\nCelular:"); fflush(stdin); gets(C.cel); fseek(arquivo, posicao, SEEK_SET); achou = fwrite(&C,sizeof(C),1,arquivo) == sizeof(C); break; case 2: printf("\n\nVocê cancelou a alteração do Contato!!\n"); break; } } posicao = posicao + sizeof(C); fseek(arquivo, posicao, SEEK_SET); } opt = -1; fclose(arquivo); } void remover() { FILE* arquivo = fopen("agenda.txt", "rw"); FILE* novoArquivo = fopen("temp.txt", "w"); char nomess[100]; printf("Digite o nome do usuário a ser excluido: "); fflush(stdin); gets(nomess); while(!feof(arquivo)) { fread(&C, sizeof(C), 1, arquivo); if(strcmp(nomess, C.nome) != 0) { fwrite(&C, sizeof(C), 1, novoArquivo); fread(&C, sizeof(C), 1, arquivo); } else { break; getchar(); } } fclose(novoArquivo); fclose(arquivo); remove("agenda.txt"); rename("temp.txt", "agenda.txt"); } void sair() { int i; printf("\nFinalizandoo"); for (i=0; i<35; i++) { _sleep(500); system ("color a"); printf(". "); } exit(1); } int main() { setlocale(LC_ALL, "Portuguese"); char op; while(op!='s') { op = menu(); switch(op) { case'1': cad(); break; case'2': listar(); break; case'3': buscar(); break; case'4': alterar(); break; case'5': remover(); break; case'6': sair(); break; } getchar(); getchar(); } }
  8. @devair1010 em alguns casos,o nome sempre fica com resto de variaveis,exemplo meu nick johnkaos,se colocar o contato julia,ela ficará 'julia aos', isso tem haver com o gets?
  9. Bom, estou criando uma agenda em C,porém tenho uma duvida,como estou lendo uma struct com gets,todos os contatos ficam um do lado do outro,existe alguma maneira de fazer um gets() ler um '\n'?
  10. viu como ficou a compilação que te mandei?
  11. eu pretendo deixar os dois csv assim,no caso como o professor pediu.. adicionado 1 minuto depois @arfneto aqui,ele compilou normal,porém na hora de criar o csv,ele cria um totalmente diferente do fprintf adicionado 5 minutos depois Eu rodei agora e ele deu esses resultados; Diferente do exemplo que citei acima primeiroresult.csv resultadofinal.csv
  12. @arfneto eu achei o enunciado um poco confuso,faltou objetividade...então só fui seguindo o que ele pede... até na hora de usar fprintf nos csv.
  13. @arfneto #include <stdio.h> #include <string.h> #include <stdlib.h> #include <conio.h> #include <ctype.h> struct auxiliar{ char aux1[25]; char aux3[15]; int aux2; char paises[30]; char paisaux[30]; float gdp_perc; float satisfacao; }; struct gdpperc{ int qntd; char pais[30]; float gdp; float satisfacao_vidareal; float satisfcao_vidacalc; float erro; }; void leArquivoum(struct auxiliar *auxs); void leArquivodois(struct auxiliar *auxs); void criacaodeumcsv(struct auxiliar *auxs); void leArquivocsv(struct gdpperc *pib); void criarcsvfinal(struct gdpperc *pib); int main (int argc , char *argv) { int qntda; int qntd; qntda = 189; struct auxiliar *auxs = malloc (qntda * sizeof(struct auxiliar)); printf("informe a quantidade de paises que deseja usar: \n"); scanf("%d",&qntd); struct gdpperc *pib = malloc (qntd * sizeof(struct gdpperc)); pib->qntd = qntd; criacaodeumcsv(auxs); criarcsvfinal(pib); free(auxs); system("PAUSE"); return 0; } void leArquivoum(struct auxiliar *auxs){ int i; FILE *arquivoum; arquivoum = fopen("C:\\Users\\John\\Desktop\\trabalho\\gdp.csv","r"); for (i=0; i< 189; i++) { fscanf(arquivoum, "%[^;]", &auxs[i].paises); for(int j=0; j < 4; j++){ fscanf(arquivoum, "%[^;]", &auxs[i].aux1); } fscanf(arquivoum, "%f[^;]", &auxs[i].gdp_perc); } fclose(arquivoum); } void leArquivodois(struct auxiliar *auxs){ int k; FILE *arquivo2; arquivo2 = fopen("C:\\Users\\John\\Desktop\\trabalho\\qualidade.csv","r"); for(k = 0; k < 41; k++) { for(int q=0;q<=1;q++) { fscanf(arquivo2, "%[^;]",&auxs[k].aux3); } fscanf(arquivo2, "%[^;]",&auxs[k].paisaux); for(int l=0; l<21; l++){ fscanf(arquivo2, "%d[^;]",auxs[k].aux2); } for(int i=0; i < 189; i++ ){ while (strcmp (auxs[k].paisaux,auxs[i].paises) == 0); { fscanf(arquivo2, "%f[^;]", &auxs[i].satisfacao); } } } fclose(arquivo2); } void criacaodeumcsv(struct auxiliar *auxs){ int indice; indice = 189; FILE *arquivof; arquivof = fopen("C:\\Users\\John\\Desktop\\trabalho\\primeiroresult.csv","w"); fprintf(arquivof,"%d\n", &indice); for(int i=0; i < 189; i++){ fprintf(arquivof, "%s,%f,%f\n", &auxs[i].paises,auxs[i].gdp_perc,auxs[i].satisfacao); } } void leArquivocsv(struct gdpperc *pib)/* função para a abertura do arquivo csv. */{ int i; FILE *arquivofinal; arquivofinal = fopen("C:\\Users\\John\\Desktop\\trabalho\\primeiroresult.csv","r"); for (i=0; i < pib[i].qntd ; i++) { fscanf(arquivofinal, "%d[^,\n]", &pib[i].qntd); fscanf(arquivofinal, "%[^,]", &pib[i].pais); fscanf(arquivofinal, "%f[^,]", &pib[i].gdp); fscanf(arquivofinal, "%f[^,\n]", &pib[i].satisfacao_vidareal); } } void criarcsvfinal(struct gdpperc *pib){ float teta0 = 2.5; float teta1 = 1; float n = 0.1; float eam; int i; FILE *arquivofinale; for (i=0; i < pib->qntd; i++ ) { arquivofinale = fopen("C:\\Users\\John\\Desktop\\trabalho\\resultadofinal.csv","w"); if (pib[i].satisfacao_vidareal != 0 ){ for (int s = 0;s < 100;s++){ pib[i].satisfcao_vidacalc = teta1 + teta0 * pib[i].gdp; pib[i].erro = pib[i].satisfcao_vidacalc - pib[i].satisfacao_vidareal; teta0 = teta0 + n * pib[i].erro * pib[i].gdp; teta1 = teta1 + n * pib[i].erro * pib[i].gdp; } } eam = pib[i].satisfcao_vidacalc - pib[i].satisfacao_vidareal / pib[i].qntd; } for (i=0; i < pib->qntd; i++ ){ fprintf(arquivofinale,"%s, %f, %f, %f, %f \n",&pib[i].pais,pib[i].gdp,pib[i].satisfcao_vidacalc,pib[i].satisfacao_vidareal,pib[i].erro); } fprintf(arquivofinale, "Erro absoluto Médio: %f", &eam); fclose(arquivofinale); } Sabe me dizer se tem algo errado na leitura do csv?
  14. estou tentando ajeitar o fprintf,já que o arquivo formado do jeito que tava ficou praticamente um lixo.

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