Ir ao conteúdo
  • Cadastre-se

C Exercicio: carregar arquivo txt linha por linha pra dentro do programa


Posts recomendados

 Olá, tenho que fazer um programa que carrega o dicionario da partição /usr/share/dict/brazilian pra memória do programa , só que fiz alguma coisa errada e não estou conseguindo arumar .

Segue o código :

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char *dicionario[275502];


int main () {
 FILE *dic;
 char *novapalavra;
 char *line = NULL;
 size_t l = 0;
 size_t nread;
 int Lidos = 0;

//carregar o dicionario para dentro do programa

 dic = fopen ( "/usr/share/dict/brazilian", "r");
 if( dic == NULL ){
   printf("Erro, nao foi possivel abrir o arquivo\n");
   exit(1);
 }
 else{
  while (( nread = getline(&line,&l,dic)) != -1)
   *novapalavra = malloc (nread-1);
   strncpy(novapalvra,line , nread - 1);
   *dicionario[Lidos] = novapalvra;
   Lidos++;
   
  }


 printf("%s \n",dicionario[0]);
 printf("%s \n ",dicionario[1]);

 return (0);
 }


e o erro é :

sad.c: In function ‘main’:
sad.c:25:17: warning: assignment makes integer from pointer without a cast [-Wint-conversion]
    *novapalavra = malloc (nread-1);
                 ^
sad.c:26:12: error: ‘novapalvra’ undeclared (first use in this function)
    strncpy(novapalvra,line , nread - 1);
            ^
sad.c:26:12: note: each undeclared identifier is reported only once for each function it appears in.

 

Obs: eu tenho que colocar cada palavra(uma palavra por linha dentro do vetor).

Link para o comentário
Compartilhar em outros sites

 valeu cara, nem tinha percebido isso, fiquei até com vergonha kkk

Mas eu arrumei o erro e agora ta dando segmentation fault e não to entendendo o porque

Segue o codigo arrumado :

 

 

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char *dicionario[275502];


int main () {
 FILE *dic;
 char *novapalavra;
 char *line = NULL;
 size_t l = 0;
 size_t nread;
 int Lidos = 0;

//carregar o dicionario para dentro do programa

 dic = fopen ( "/usr/share/dict/brazilian", "r");
 if( dic == NULL ){
   printf("Erro, nao foi possivel abrir o arquivo\n");
   exit(1);
 }
 else{
  while (( nread = getline(&line,&l,dic)) != -1)
   novapalavra  = (char *)malloc (nread-1);
   strncpy(novapalavra,line , nread - 1);
   dicionario[Lidos] = novapalavra;
   Lidos++;
   
  }

 return (0);
 }

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!