Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #59 da revista programar. Faz já o download aqui!

pedro_nuno

Listas ligadas e ficheiro

Mensagens Recomendadas

pedro_nuno    0
pedro_nuno

Boa tarde!

Eu preciso de fazer um programa que me abra um ficheiro e carregue os dados para uma lista ligada.

Já estive a estudar listas ligadas, e percebi que para além das variáveis que possa conter, a struct tem ainda de ter um apontador para a struct seguinte.

Aquilo que eu não sei fazer é:

-> determinar quantas structs vou precisar (sem andar a contar as linhas do ficheiro :P )

->passar os dados do file para cada struct

Vou dar um pequeno exemplo:

Digamos que a primeira linha do meu file é a seguinte: 0047 0047 HAITONG BANK, SA Bancos

Eu tenho de pegar naquele 0047 (também não sei pegar apenas naquele bocado de informação) e guardar numa struct (ou seja, num elemento da minha lista) e apontar para a struct seguinte onde vou guardar outros 4 números e assim sucessivamente.

Alguém sabe como posso fazer isto?

Muito obrigado

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
GRSa    3
GRSa

Bem, isso pode ser feito de várias formas. Eu faria com a seguinte estrutura:

int main()
{
typedef struct caractere Caractere;
typedef struct linha Linha;

//Estrutura que armazena os caracteres de uma linha em forma de lista ligada.O ultimo caractere deve apontar para NULL
struct caractere
{
	char caractere;
	Caractere *proximo_caractere;
};

//Estrutura que armazena as linhas do arquivo em forma de lista ligada. O última linha deve apontar para NULL.
struct linha
{
	Caractere caracteres;
	Linha *proxima_linha;
};

Linha linhas_arquivo; //A referência para a estrutura que armazena o arquivo fica nesta variável
return 0;
}

Editado por GRSa

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo    1151
HappyHippyHippo

-> determinar quantas structs vou precisar (sem andar a contar as linhas do ficheiro :P )

estamos a falar de listas ligadas, logo esta questão é completamente irrelevante

->passar os dados do file para cada struct

les uma linha do ficheiro e de seguida interpretas a linha como bem entenderes

#define BUFFER_SIZE 1024 // por exemplo

FILE* fd;
char buffer[bUFFER_SIZE];

// ...

while (fgets(buffer, BUFFER_SIZE, fd)) {
 sscanf(buffer, my_format, &my_struct.param1, &my_struct.param2, &my_struct.param3);
}


IRC : sim, é algo que ainda existe >> #p@p

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.