Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] programa não puxa o arquivo txt

Meu cosdigo estava funcionando corretamente, fiz a alteração da aula 5 na função escolhepalavra, e agora o programa não seleciona nenhuma palavra. Fiz igual a alteração igual da aula, não sei oque possa estar dando de errado... `#include <stdio.h>

#include <string.h>

#include <stdlib.h>

#include <time.h>

#include "forca.h"

char palavrasecreta[20]; char chutes[26]; int chutesdados = 0;

void abertura(){ printf("***\n"); printf("* Jogo da Forca \n"); printf("**\n\n"); }

void chuta(){ char chute; scanf(" %c", &chute);

chutes[chutesdados] = chute;
chutesdados++;

}

int jachutou(char letra){ int achou = 0;

for(int j = 0; j < chutesdados; j++){
    if(chutes[j] == letra){
        achou = 1;
        break;
    }
}
return achou;

}

int enforcou(){ int erros = 0;

for(int i = 0; i < chutesdados; i++){
    int existe = 0;

    for(int j = 0; j < (int)strlen(palavrasecreta); j++){
        if(chutes[i] == palavrasecreta[j]){
            existe = 1;
            break;
        }
    }

    if (!existe) erros++;
}

return erros >= 5;

}

int ganhou(){ for(int i = 0; i < (int)strlen(palavrasecreta); i++){ if(!jachutou(palavrasecreta[i])){ return 0; } } return 1; }

void desenhaforca(){ for (int i = 0; i < (int)strlen(palavrasecreta); i++) {

        int achou = jachutou(palavrasecreta[i]);

        if (achou){
            printf("%c ", palavrasecreta[i]);
        }   
        else{
            printf("_ ");
        }

    }
    printf("\n");

}

void escolhepalavra(){ FILE* f;

f = fopen("palavra.txt", "r");
if(f == 0) {
    printf("Banco de dados de palavras nao disponivel\n\n");
    exit(1);
}

int qtddepalavras;
fscanf(f, "%d", &qtddepalavras);

srand(time(0));
int randomico = rand() % qtddepalavras;

for(int i = 0; i <= randomico; i++) {
    fscanf(f, "%s", palavrasecreta);
}

fclose(f);

}

int main() {

escolhepalavra();
abertura();

do{

    desenhaforca();
    chuta();

} while (!ganhou() && !enforcou());

return 0;

}`

7
ABACATE
ABACAXI
ACAI
ACEROLA
AMEIXA
AMORA
AVELA
2 respostas
solução!

Eu pesquisei os possiveis problemas, e descobri o que estava errado. No VS code o compilador coloca o .exe em uma pasta separada, e isso gera um problema que o executavel não encontra o arquivo .txt, voce pode arrumar o esse problema explicando o caminho da pastasta que está o arquivo txt ou colocar o arquivo texto na mesma pasta do .exe... ;)

Valeu chará, tava com esse mesmo problema, mas ai coloquei o arquivo .txt na pasta do .exe e funcinou.