Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

valramos

Mostrar na tela conteudo do arquivo

Recommended Posts

Ola,

 

estou tentando fazer com que o codigo abaixo liste pra mim todo o conteudo do arquivo. E nao to conseguindo.

Alguem poderia dar uma ajuda?

Obrigado!

 

Codigo:

struct Loja* lerLoja()
{
    int cod, cont;
	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);

	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;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu proponho algumas alterações, antes de tentar corrigir qualquer erro:

 

Armazene o conteúdo diretamente usando fwrite(), e leia direto na struct usando fread(). Não use a função de leitura para escrever. Leia tudo que tiver que ler, e crie uma função de escrita que percorre o seu vetor de structs lidas (ou qualquer que seja a estrutura de dados que você deseje usar para armazenar as informações), imprimindo campo a campo...

 

Isso modulariza e simplifica a solução. Fica mais fácil localizar e corrigir erros, bem como fazer quaisquer alterações que você queira depois.

 

 

 

Outra coisa: evite ao máximo usar strcpy(). Use, ao invés disso, strncpy(), que é segura. E o que você fez na declaração dos vetores de char não é padrão no C. Ao invés disso, declare char* e faça malloc() baseado no strlen() dos dados em que deseja fazer strncpy().

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.