Gravar Matriz em um arquivo TXT

1. Gravar Matriz em um arquivo TXT

Felipe Oliveira de Sena
felippesena

(usa Fedora)

Enviado em 27/06/2012 - 11:39h

Oi pessoal, eu gostaria de grava os dados da matriz em um arquivo txt, pois tenho que importar os dado para excel.

algo desse tipo:


1 2 3
4 5 6
7 8 9



#include <stdio.h>

main() {
int i, j, matriz[3][3]; //Matriz 3x3.

printf("\n==============MATRIZ 3x3==============\n");

for (i=0; i<3; i++) {
for (j=0; j<3; j++) {
printf("\nDigite um valor para [%d][%d]: ", i+1, j+1);
scanf("%d", &matriz[i][j]);

}

}

printf("\n");

for (i=0; i<3; i++) {
for (j=0; j<3; j++) {
printf("%d ", matriz[i][j]);

}

printf("\n");

}


}



  


2. Re: Gravar Matriz em um arquivo TXT

Daniel Lara Souza
danniel-lara

(usa Fedora)

Enviado em 27/06/2012 - 11:49h


procure não duplicar o tópico
bom assim
de uma lida


http://pt.wikibooks.org/wiki/Programar_em_C/Grava%C3%A7%C3%A3o_e_leitura_em_arquivos
espero que ajude


3. Re: Gravar Matriz em um arquivo TXT

Perfil removido
removido

(usa Nenhuma)

Enviado em 27/06/2012 - 15:46h

adicione ao seu código:


FILE *pArq;
int nLin, nCol;
/*
.
.
.
*/
if((pArq = fopen("Matriz", "w")) == 0x0) {
printf("erro.");
exit(1);
}

for(i=0; i<nLin; i++) {
for(j=0; j<nCol; j++)
fprintf(pArq, "%d\t", matriz[i][j]);

fprintf(pArq, "\n");
}

if(fclose(pArq)) {
printf("erro.");
exit(1);
}


dê uma lida no material que o Daniel postou para entender as funções.


4. Re: Gravar Matriz em um arquivo TXT

Perfil removido
removido

(usa Nenhuma)

Enviado em 01/07/2012 - 22:07h

Para o Excel ler o arquivo, não ficaria melhor aquele formato com campos separados por vírgulas?
É extensão .csv, não é?


5. Re: Gravar Matriz em um arquivo TXT

Felipe Oliveira de Sena
felippesena

(usa Fedora)

Enviado em 02/07/2012 - 11:28h

vc tem alguma dica como gravar no arquivo o ponto e virgula entre os dados ?

Exemplo
1 ; 2 ; 3
4 ; 4 ; 6
7 ; 8 ; 9



6. Re: Gravar Matriz em um arquivo TXT

Perfil removido
removido

(usa Nenhuma)

Enviado em 02/07/2012 - 11:35h

nesse caso gera um arquivo-texto, se você executá-lo no windows provavelmente precisará adicionar .txt ao final do nome do arquivo:
fopen("Matriz.txt", "w")

para abrir no Excel basta usar o assistente de importação de texto do mesmo.


7. Re: Gravar Matriz em um arquivo TXT

Perfil removido
removido

(usa Nenhuma)

Enviado em 02/07/2012 - 14:57h

não há necessidade de inserir uma vírgula entre os campos pois a tabulação já é um delimitador, observe o \t em fprintf().


8. Re: Gravar Matriz em um arquivo TXT

Perfil removido
removido

(usa Nenhuma)

Enviado em 02/07/2012 - 15:10h

felippesena escreveu:

vc tem alguma dica como gravar no arquivo o ponto e virgula entre os dados ?

Exemplo
1 ; 2 ; 3
4 ; 4 ; 6
7 ; 8 ; 9


Dentro do loop a vírgula só pode ser escrita se não for final de linha de matriz.
Senão é escrita mudança de linha.

if (contador==última_coluna) fprint (...,"\n",...);
else fprint (...,";",...);

Isso pode até ser resolvido com operador ternário.
O tal do "() ? () : ();"

fprint (...,contador==última_coluna?"\n":";",...)

Confira a necessidade de se usar aspas duplas de strings ou simples de caracteres.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts