-
Posts
3 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
posts postados por Angelij
-
-
Em 09/11/2018 às 10:27, Arthur Vandellay disse:
Olá. Encontrei alguns erros no programa, o principal é que você está tentando usar a função printf( ) para salvar os inteiros no arquivo texto, mas a função printf só serve para imprimir coisas na tela, não para escrever em arquivos. Para salvar variáveis você tem que usar outras funções, uma delas é a função fprintf( ). Você usa ela da seguinte forma fprintf ( ponteiro para o arquivo " testo como se fosse o printf e os identificadores tipo %d %f %d " , aqui o nome das variaveis, que nem no printf). As vírgulas são importantes.
Outra coisa, você está usando dois ponteiros do tipo FILE, mas seria necessário apenas 1, e também você abriu varias vezes o mesmo arquivo, isso é desnecessário. E além do mais, no inicio você esta abrindo ele para leitura "r", e leitura binario "rb". Bom você dar uma pesquisada nas diferenças. No final você também abriu o arquivo em modo de leitura "w", isso não é o suficiente para gravar os dados, é necessario usar uma funcao como fprintf()Outra coisa que eu achei estranho é o foi isso:
Aqui você está multiplicando tudo por 1, isso não fará diferença nenhuma.
Eu faria o código da seguinte forma:
#include <stdio.h> #include <stdlib.h> int main() { FILE *pArq; // apenas 1 ponteiro int i, j, result=0, matrix[3][3]; pArq = fopen("matrix.txt", "w"); // cria um arquivo chamado "matrix.txt" e o abre na forma de leitura ( write ) // caso ja exista um arquivo chamado "matrix.txt" o arquivo antigo será excluido // atribui o local da memoria do inicio do arquivo para o ponteiro pArq. Esse valor vai aumentando conforme usam-se funções // de escrita ou leitura de arquivo. if( pArq == NULL ){ printf("\nerro ao abrir o arquivo 'matrix.txt'\n"); exit(1); } for(i=0;i<3;i++) { for(j=0;j<3;j++) { printf("Elemento[%d][%d]= ", i, j); scanf("%d", &matrix[i][j]); } } // printf("\n::: Valores Digitados :::\n"); para escrever isso no arquivo pode ser feito o seguinte: fprintf(pArq, "\n::: Valores Digitados :::\n"); for(i=0;i<3;i++) // esse for salva os valores da matriz, no arquivo matrix.txt { for(j=0;j<3;j++) { fprintf( pArq,"%d\t", matrix[i][j]); printf("\n"); } fprintf( pArq,"\n"); } for(i=0;i<3;i++) { for(j=0;j<3;j++) result=result+matrix[i][j]; } fprintf( pArq , "\n\nA soma dos valores e: %d\n", result); // salva o texto digitado e a soma dos valores no arquivo "matrix.txt" fclose(pArq); // fecha o arquivo para o qual pArq aponta, no caso "matrix.txt". return 0; }
Espero ter ajudado, e não desanime, esses negócios de programação são complicados mesmo.
adicionado 4 minutos depoisBoa noite Arthur Vandellay!
Após visualizar seu código entendi perfeitamente quando usar "fprintf". Eu havia visto algumas vídeo aulas, mas não havia ficado claro do quando usar tal função.
Muito agradecida,
Angélica
- 1
-
Preciso fazer a leitura de uma matriz via teclado, somar os elementos dela e imprimir gerando um arquivo em txt que exibirá tanto a matriz como o resultado. Fiz essa matriz aí embaixo, mas ela apenas gera o arquivo matrix.txt, sendo que não exibe nada.
#include <stdio.h> #include <stdlib.h> int main() { FILE *entrada; FILE *saida; int i, j, result=0, matrix[3][3]; entrada = fopen("matrix.txt", "r"); if(!entrada) { printf("Erro na abertura do arquivo"); exit(0); } else if((entrada = fopen("matrix.txt", "rb")) == NULL) { printf("Erro na abertura do arquivo"); exit(1); } for(i=0;i<3;i++) for(j=0;j<3;j++) { printf("Elemento[%d][%d]= ", i, j); scanf("%d", &matrix[i][j]); } printf("\n::: Valores Digitados :::\n"); for(i=0;i<3;i++) { for(j=0;j<3;j++) printf("%d\t", matrix[i][j]); printf("\n"); } for(i=0;i<3;i++) for(j=0;j<3;j++) matrix[i][j]=matrix[i][j]*1; for(i=0;i<3;i++) { for(j=0;j<3;j++) result=result+matrix[i][j]; } printf("\n\nA soma dos valores e: %d\n", result); fclose(entrada); saida = fopen("matrix.txt", "w"); return 0; }
- 1
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
Código em linguagem C não compila
em C/C#/C++
Postado
Digitei o código abaixo exatamente como está em meu livro, acontece que esse código não está compilando e não consigo identificar o erro. Revisei o código todo acompanhando o livro e nada de encontrar problema.
Se alguém puder me ajudar fico agradecida!