Ir para o conteúdo
lulamen

[Resolvido] Programa que lê ficheiro binario com struct

Mensagens Recomendadas

lulamen

Boa tarde a todos...

Estou aqui com uma duvida em relação á leitura de um ficheiro binario que cujo contuedo é uma struct.

O problema e que nao consigo ler o ficheiro todo. ele lê algum contuedo mas nao o le totalmente, a meio lê lixo...

int veri_fich(char *nome_fich){
struct dados c;
FILE *f;
int i;
if((f=fopen(nome_fich, "rb"))==NULL){
printf("falha leitura ficheiro binario.\n");
return 0;
}
fseek(f,0,SEEK_SET);
i=0;
do
{
fread(&c,sizeof(struct dados),1,f);
if(feof(f)) break;
printf("%s\n%d\n",c.nome,c.idade);
i++;
}
while(! feof(f));


fclose(f);
}

E o ficheiro binario tem este conteudo:

Id: 1

Nome: luis

Idade: 12

Id: 2

Nome: gustavo

Idade: 56

Id: 3

Nome: luisa

Idade: 14

Id: 4

Nome: manuel

Idade: 56

Id: 5

Nome: nuno

Idade: 42

Id: 6

Nome: gusti

Idade: 47

Editado por thoga31
GeSHi, correção tags

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

isso não é um ficheiro binário mas sim um ficheiro de texto do qual nunca poderá ser lido através da função fread.


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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

o ficheiro até poderia se chamar "super_ficheiro_binario_da_NASA.binario"

se dizes que o conteúdo do ficheiro é o qpresentadom então é um ficehiro de texto


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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

afinal o problema é ler ou escrever ?

se pretendes escrever, usas a função fwrite, se pretendes ler usas a função fread


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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
lulamen

O problema é que eu escrevi no ficheiro binario o conteudo que acima coloquei mas quando quero lê-lo ele começa a ler bem mas depois ja nao consegue acabar de ler (mostrar na consola)

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

quando quero lê-lo ele começa a ler bem

enquanto não meteres na cabeça que o que tens está errado, nunca irás resolver o teu problema ...


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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

responde a estas duas questões:

- sabes o que o ASCII e/ou como se encontra guardada uma string em memória ?

- sabes o que se encontra guardado em memória quando instâncias uma estrutura ?


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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
lulamen

eu tou a perceber.. No ficheiro binario supostamente nao da para alterar a informacao nem sequer ve-la na sua integra. Eu fiz as modificacoes necessarias no programa e ele mostra tudo certo em .txt. O problema esta em escrever a informacao no binario... Tera de ser em vetor?

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.