Ir ao conteúdo
  • Cadastre-se

C Ler palavra de uma certa linha em um arquivo


F1rmeza

Posts recomendados

Fala, rapeize!

 

Estou com dificuldades em ler uma palavra em uma certa linha de um arquivo.

 

if(categoria==1){
	if((arq=fopen("Categorias\\estados.txt", "r"))==NULL){	//Abre o arquivo estados.txt para pode pegar uma palavra aleatorio, armazenar em uma variavel e poder iniciar o jogo da forca
		puts("ERRO ESTADOS");
	}else{
		random=rand()%qtdePalavras;	//Escolhe uma linha aleatória
	}
}

 

Não consigo pensar em nenhuma forma para navegar dentro do arquivo e ler a linha aleatória definida na variável random.

 

@EDIT1: Também gostaria de saber como faço para ler quantas linhas existem no arquivo.

Link para o comentário
Compartilhar em outros sites

@F1rmeza  Sobre navegar no arquivo, eu recomendaria algo mais simples, a minha ideia seria criar um vetor de strings, e salvar cada palavra separadamente, com elas salvas, é só utilizar na posição gerada pelo rand.

 

Agora sobre contar linhas, existem diversas maneiras de se fazer isto, está função por exemplo realiza esse trabalho:

int contLines(FILE *file){

    int lines=0;

    for(;;){

             if(feof(file)) break;
        else if( (fgetc(file)) == '\n') lines++;
    }

    rewind(file); 
  
    /*
    	se você for seguir a dica que dei acima, esse rewind será muito importante,
        pois você terá que realizar uma nova leitura para salvar cada palavra separadamente,
        o rewind irá voltar para o começo para ler o conteudo do arquivo novamente.
    */

    return ++lines;
}

 

  • Curtir 1
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...