Jump to content
Gormiti

Programa para guardar ficheiro em lista simples

Recommended Posts

Gormiti

Criei uma estrutura cliente

struct cliente{
    int nu_cliente;
    char nome[30], morada[30], telefone[9], tipo;
    float montante;
};

Quero guardar os dados da estrutura num ficheiro, mas não sei para quantos clientes vou ter que os guardar, por isso vou ter de usar memoria dinâmica.

Basicamente o que eu quero fazer é alocar memoria para guardar dados dos clientes num ficheiro de texto

write = fopen("inventario.txt", "w");
if(write == NULL){
        printf("Impossivel de abrir o ficheiro");
        getchar();
        exit(1);
}

Alguém me pode ajudar quem este código?

Edited by pmg
Falta LP

Share this post


Link to post
Share on other sites
pmg

Uma coisa nao implica outra.

Se vais guardar os dados em ficheiro nao precisas de os ter todos ao mesmo tempo em memoria: podes ter apenas 1.

Se queres ter os dados todos em memoria, nao precisas de ter um ficheiro para trabalhar com eles (precisas do ficheiro para teres as informacoes guardadas de um dia para o outro)

Para alocacao de memoria dinamica precisas das funcoes malloc() (eventualmente realloc() e/ou calloc()) e free().

Nao te esquecas do #include <stdlib.h>

Quais sao as tuas duvidas concretas no que respeita a alocacao dinamica de memoria?

Edited by pmg

What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Share this post


Link to post
Share on other sites
Gormiti

o que eu quero fazer é guardar num ficheiro de texto os dados dos clientes. mas não sei de quantos. Por exemplo se eu criasse uma estrutura cliente com um vector com 5 elementos,

struct cliente dados_clie[5];

, iria ter de preencher os dados de 5 clientes. Com a lista já não tinha de declarar no codigo quantos clientes eram.

Não sei se me estou a fazer entender

Share this post


Link to post
Share on other sites
pmg

Pede um cliente ao utilizador: se ele sinalizar que nao tem mais clientes termina o programa.

Adiciona o cliente no ficheiro.

Pede um cliente ao utilizador utilizando a mesma variavel de antes.

Adiciona o cliente no ficheiro.

Pede um cliente ao utilizador utilizando a mesma variavel de antes.

Adiciona o cliente no ficheiro.

Pede um cliente ao utilizador utilizando a mesma variavel de antes.

Adiciona o cliente no ficheiro.

...

Tanto funciona para 1 cliente como para 20 mil.

~~~~~~~~

Se queres usar a memoria dinamica, é mais ou menos assim:

Comeca por um tamanho razoavel (por exemplo, 10 clientes).

Quando o utilizador indicar que tem mais do que o numero reservado duplica o tamanho reservado.

Vai pedindo clientes e duplicando o tamanho conforme as necessidades.

Quando chegar ao fim, se quiseres, reduz o tamanho para o estritamente necessario.

Assim evitas estar a alocar um-a-um (o que é muito pouco eficiente) e desperdicas uma quantidade de memoria relativamente pequena.


What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.