Ir ao conteúdo
  • Cadastre-se

Armazenar arquivos em vetores


Dani29

Posts recomendados

Olá amigo,

isso que você está pedindo envolve um pouco de manipulação de memória. Fiz um exemplo simples em C de como funciona a leitura de arquivos e, o armazenamento dos dados contidos. Para fazer isso, precisaremos criar um ponteiro com duas ramificações. Tente entender o código e qualquer dúvida é só postar.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(){
FILE *arq;
char string[100];
int quantLinhas = 0;
char **linhas;
arq = fopen("texto.txt","r");
linhas = (char**) malloc(sizeof(char*));
if(arq){
while(fgets(string,sizeof(string),arq)){
quantLinhas++;
linhas = (char**) realloc(linhas,sizeof(linhas) * quantLinhas);
linhas[quantLinhas-1] = (char*) malloc(sizeof(char) * 100);
strcpy(linhas[quantLinhas-1],string);
printf("%s\n",linhas[quantLinhas-1]);
}
}
close(arq);
free(*linhas);
free(linhas);
return 0;
}

Grande abraço, espero ter ajudado.

Link para o comentário
Compartilhar em outros sites

Olá obrigada por responder! Mas não entendi esse teu código. Tem coisas ali que ainda nao estudei como o realloc e ponteiros. O que eu preciso mesmo é o seguinte: tenho um arquivo e nele esta os seguintes dados:

128

3

129

5

O que eu tenho que fazer é usar esse arquivo e mostrar na tela as posições de memoria de 0 a 255. Só que na memoria 128 tem que aparecer o 3 e na 129 tem q aparecer o 5. No caso ali o 128 e o 1289 sao posições de memoria. E não tenho ideia de como fazer!! Se puder ajudar,agradeço!

Link para o comentário
Compartilhar em outros sites

Agora quem não compreendeu fui eu. auiehaeiuhae, como assim mostrar na tela a posição de memória? Pelo que eu saiba, as posições de memórias são alocadas dinamicamente pelo kernel do sistema operacional, mostrar a posição de memória 128, ou 129 seria retornar um valor qualquer em uso ou não no sistema. Tem certeza que tem a ver com posição de memória?

Você não está falando de vetores não?

Link para o comentário
Compartilhar em outros sites

Desculpe,acho que me expressei mal. É que tenho que criar em c o simulador neander, não sei se tu conhece. O neander faz calculos usando o assembly que trabalha com posições de memória. Mas ali no problema eu posso usar vetor pra representar essa memoria. Então o que eu queria saber é como eu faria pra armazenar o valor 3 na posição 128,e a mesma coisa com o outro valor. E no arquivo de dados esta assim:

128

3

129

5

Já no arquivo de instruções aparece esses dados:

lda --> o lda é pra dizer q vai ser carregado um valor na posição 128

128

add --> o add é pra dizer q vai ser somado o valor do 128na posição 129

129

sta --> o sta é pra dizer q vai ser armazenado na pos 130 a soma dos num

130

not --> o not inverte o sinal do num que esta na posição 130

sta -->e depois armazena esse num invertido na posição 131

131

hlt -->o hlt é para encerrar o programa

Então eu gostaria de uma ajuda, de uma luz sobre como fazer isso funcionar... :wacko:

Coloquei um link aqui de um video mostrando como funciona o simulador neander.

[ame=

]
[/ame]
Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!