Ir para conteúdo

POWERED BY:

Arquivado

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

neiah

C - Recuperar dados para uma estrutura de um ficheiro txt

Recommended Posts

Olá Pessoal!

Estou a tentar recuperar os dados de um ficheiro de texto para uma estrutura, mas não entendo muito sobre ficheiros de texto e provavelmente o meu código está completamente errado...

Será que alguém me pode dar uma ajudinha pf?

 

typedef struct ingrediente no, *pno;  
struct ingrediente{
       char nome[sT_TAM];     // Nome do ingrediente
	int id_i;					//Identificação do ingrediente
	int quant;				//quantidade do ingrediente
	int limite_med;			//Limite médio do ingrediente
	int consumo_med;			//Consumo Médio dos ultimos 7 dias
       pno prox;              // Ponteiro para proximo no da lista  
};  


pno recupera_lista(char *listaIngredientes){ 

FILE *f;
pno lista = NULL, novo=NULL;

f=fopen("listaIngredientes.txt", "r");
if (f == NULL)
	 printf("Erro ao abrir o ficheiro!");
  else
  {
 while ( fgets(novo->nome, ST_TAM, f) ){
               fscanf(f, "%d", &(novo->id_i));
               fscanf(f, "%d", &(novo->quant));
               fscanf(f, "%d", &(novo->limite_med));     
			fscanf(f, "%d", &(novo->consumo_med));

		novo->prox=lista;
		lista=novo;
 }
 }
 fclose (f);
 return lista;

}

 

 

 

O que estou a fazer de mal? E como é que tenho que fazer ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá neiah,

 

Neste post:

http://forum.imasters.com.br/topic/466242-c-folha-de-pagamento/

 

Escrevi um mini tutorial justamente sobre este assunto. Tratando da escrita e da leitura de estruturas em arquivos.

 

Acredito que lhe será de boa utilidade.

 

Espero ter ajudado, FLW! :grin:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá neiah,

 

Neste post:

http://forum.imasters.com.br/topic/466242-c-folha-de-pagamento/

 

Escrevi um mini tutorial justamente sobre este assunto. Tratando da escrita e da leitura de estruturas em arquivos.

 

Acredito que lhe será de boa utilidade.

 

Espero ter ajudado, FLW! :grin:

 

Obrigada :)

já estive a ler mas o problema da minha função está nos ponteiros e não tanto na abertura do ficheiro...

Nao sei como devo de fazer ... :/ Preciso mesmo de ajuda pois o trabalho é para entregar amanha...

Compartilhar este post


Link para o post
Compartilhar em outros sites

neiah,

 

Para você fazer leitura de uma struct em arquivo, os dados tem que estar gravados lá da mesma forma.

É igual quando se tenta ler e gravar um int. Você não pode gravar um char ler um int e esperar que tenha lido o valor correto.

 

No post que te passei o link, expliquei como se lê e se grava uma struct no arquivo.

Utilizando a fwrite e fread da stdio.

Se você seguir aquele pequeno tutorial, tentar estudá-lo, principalmente a parte de escrita e leitura, não a parte que abre e fecha o arquivo, ira sanar a sua dúvida.

 

Segue os links das funções mencionadas acima:

http://www.cplusplus.com/reference/clibrary/cstdio/fread/

http://www.cplusplus.com/reference/clibrary/cstdio/fwrite/

 

OBS.: Só uma curiosidade, você é portuguesa?? =P

 

Espero ter ajudado, FLW! :grin:

Compartilhar este post


Link para o post
Compartilhar em outros sites

neiah,

 

Para você fazer leitura de uma struct em arquivo, os dados tem que estar gravados lá da mesma forma.

É igual quando se tenta ler e gravar um int. Você não pode gravar um char ler um int e esperar que tenha lido o valor correto.

 

No post que te passei o link, expliquei como se lê e se grava uma struct no arquivo.

Utilizando a fwrite e fread da stdio.

Se você seguir aquele pequeno tutorial, tentar estudá-lo, principalmente a parte de escrita e leitura, não a parte que abre e fecha o arquivo, ira sanar a sua dúvida.

 

Segue os links das funções mencionadas acima:

http://www.cplusplus.com/reference/clibrary/cstdio/fread/

http://www.cplusplus.com/reference/clibrary/cstdio/fwrite/

 

OBS.: Só uma curiosidade, você é portuguesa?? =P

 

Espero ter ajudado, FLW! :grin:

 

 

Obrigada :D

Ainda nao vi estes novos link's que mandou mas já irei ver e estudar aquilo.

Sim sou portuguesa :P

Compartilhar este post


Link para o post
Compartilhar em outros sites

rsrsrs.

 

Desculpa a pergunta. Mas é você chama "ficheiro", e por aqui conheço por "arquivo". E fiquei curioso :grin:

 

Sou do Rio Grande do Sul.

=)

 

Bom estudo!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.