Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda Para Gravar Linhas De Arquivo Txt Em Vetor


Guest --Guilherme --

Pergunta

Guest --Guilherme --

Olá pessoal,

Preciso muito da ajuda de vocês.

Estou desenvolvendo um programa que deve ler um arquivo .txt e ARMAZENAR o conteúdo de cada linha num campo de vetor.

O código é o seguinte:

main()

{

FILE *fp;

char nome_lista_genes[50];

char *nome_gene[5];

char gene[10];

char *temp[10];

int a=0;

int l;

/*Rotina comum que verifica se o arquivo foi aberto*/

printf("\nDigite o nome do arquivo correspondente à lista de genes:\n");

scanf("%s", &nome_lista_genes);

if (( fp = fopen(nome_lista_genes, "r")) == NULL)

{

printf("\nNão foi possível abrir o arquivo! Verifique se o nome fornecido está correto.\n");

exit(1);

}

do

{

a++;

nome_gene[a]=fgets(gene,50,fp); /*cada campo do vetor recebe o conteudo de uma linha*/

printf("%s\n", nome_gene[a]);

}while(!feof(fp));

printf("\nO número de genes nesta lista é de: %d\n", a-1);

------> Até aqui tudo bem! Durante a execução, cada linha do arquivo é impressa na tela. No caso de existirem apenas 3 genes na lista:

gene A

gene B

gene C

(null)

Continuando o código:

for(l=1;l<=a;l++)

{

printf("%s\n", nome_gene[l]); /*peço para imprimir novamente, só que considerando apenas o vetor*/

}

---------> O resultado jogado na tela é:

gene C

gene C

gene C

(null)

Ou seja, este vetor não ARMAZENA realmente o registro de cada uma das linhas, apenas o do último loop. E eu preciso de cada um dos registros para serem manipulados mais tarde.

Se alguém puder me dar uma dica, agradeço muito!!!

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

C não implementa o que voce está querendo fazer, mas existe uma funcão que te ajudará.

Em vez disso:

nome_gene[a]=fgets(gene,50,fp); /*cada campo do vetor recebe o conteudo de uma linha*/
Faca isso:
fgets(gene,50,fp); /*cada campo do vetor recebe o conteudo de uma linha*/
strcpy(nome_gene[a], gene);

;)

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...