Ir para conteúdo

POWERED BY:

Arquivado

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

dimitrikx

retornando valores de um txt em uma lde

Recommended Posts

Ola pessoal , estou a dias tentando fazer esta funcao e ainda nao consegui.Ja procurei no google , orkut etc.Alguem tem esta funcao para me enviar, agradeceria muito .Caso nao tenha, tentem me ajudar por favor.void listarDadosArquivo(char* nomeArq){ FILE* fp; fp = fopen(nomeArq, "rt"); char linha[121]; char c; while ( !feof(fp)) { //Poderia ter usado este comando para fazer a leitura //fscanf(fp, "%[^\n]\n", &linha); fgets(linha,120,fp); printf("%s", linha); } fclose(fp); }Esta funcao imprime tudo que esta no meu aquivo, a impressao fica assimcodigo:1nome: euidade :10codigo:2nome: eleidade:30Mas no meu programa eu quero armazenar em uma estrutura os dados lidos no arquivo texto.TENTEI ::void listarDadosArquivo(char* nomeArq){TDados * dados(TDados*)malloc(sizeof(TDados)) TLista * l; FILE* fp; fp = fopen(nomeArq, "rt"); char linha[121]; char c; while ( !feof(fp)) { //Poderia ter usado este comando para fazer a leitura fscanf(fp, "%[^\n]\n", &dados); InsereFim(l,dados) } fclose(fp); }Foi o melhor que consegui fazer , mas nao consigo pegar separadamente cada registro entao ele trava o programa.Alguem pode por favor me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Preciso saber como é sua estrutura TDados.

 

Tem uma sintaxe que eu usaria de outra forma:

 

em vez de:

TDados * dados(TDados*)malloc(sizeof(TDados))

TDados * dados;dados = (TDados*)malloc(sizeof(TDados));

e em vez de:

fscanf(fp, "%[^\n]\n", &dados);

fscanf(fp, "%[^\n]s", &dados); // aqui está o problema que tipo de dado é "dado"?

Dado é um ponteiro TDados, por isso a construção está errada.

Os dados lidos deve ir para algum campo dentro da estrutura TDados.

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.