Ir para o conteúdo
Gormiti

Programa para guardar ficheiro em lista simples

Mensagens Recomendadas

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?

Editado por pmg
Falta LP

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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?

Editado por 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!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.