Codigo com erro

1. Codigo com erro

walter
wallter

(usa Outra)

Enviado em 05/06/2010 - 22:33h

Bom galera tenho um programa em c e não consigo fazer ele ler todo conteudo de um arquivo ele só mostra um unico registro segue codigo: preciso que ele mostre todos os registro do arquivo .txt de maneira ordenada:


struct Loja* lerLoja()
{
int cod, cont, i;

struct Loja *p = malloc(sizeof(struct Loja));
FILE *f = fopen("CADASTROS.txt", "r");
char text[sizeof(struct Loja)+4];
memset(text, 0, sizeof(struct Loja)+4);
for(i=0;i<99;i++)


fgets(text, sizeof(struct Loja)+4, f);
system("cls");
printf("codigo, nome, local, dono\n");

printf("%s", text);

char* codigo = strtok(text, "/");
char* nome = strtok(text, "/");
char* local = strtok(text, "/");
char* dono = strtok(text, "/");

strcpy(p->codigo, codigo);
strcpy(p->nome, nome);
strcpy(p->local, local);
strcpy(p->dono, dono);

fclose(f);
return p;
}



  


2. Re: Codigo com erro

Enzo de Brito Ferber
EnzoFerber

(usa FreeBSD)

Enviado em 08/06/2010 - 13:55h

Cara, pra vc só imprimir os dados tem que ser assim:

system ( "cls" );
printf ( "codigo, nome, local, dono\n" );

for ( i = 0; i < 99; i++ )
{ // note as chaves!
fgets ( text, sizeof(struct Loja) + 4, f );
printf ( "%s", text );
}

O que tá rolando é que você colaca o for em um loop com apenas uma instrução (no caso o fgets), então toda hora ele sobreescreve os dados de 'text'. O que você tem que fazer é definir operações DENTRO do loop do for (pra cada incremento de 'i'). Entendeu?

Espero ter ajudado,
Qualquer coisa posta denovo.
[]'s
Enzo


3. agradeço

walter
wallter

(usa Outra)

Enviado em 08/06/2010 - 14:02h

Muito obg. entendi sim. vlw mesmo;






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts