neiah 0 Denunciar post Postado Junho 23, 2012 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
GBecker 51 Denunciar post Postado Junho 24, 2012 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
neiah 0 Denunciar post Postado Junho 24, 2012 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
GBecker 51 Denunciar post Postado Junho 24, 2012 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 0 Denunciar post Postado Junho 24, 2012 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
GBecker 51 Denunciar post Postado Junho 24, 2012 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