1
resposta

quantidades de palavras é ZERO

Por algum motivo (exceção) a variável inteiro tem o valor zero o que diz respeito ao numero de palavras no .txt

Ao compilar não há erros apontados pelo VsCode. Estou usando o Win10. Abaixo as duas funções. Vale lembrar que meu arquivo .txt está no mesmo diretório do arquivo .cpp do jogo. Meu arquivo é: palavras.txt

vector<string> le_arquivo()
{
    ifstream arquivo;
    arquivo.open("palavras.txt");

    int quantidade_palavras;
    arquivo >> quantidade_palavras;

    cout << "O arquivo possui " << quantidade_palavras << " palavras." << endl;

    vector <string> palavras_do_arquivo;

    for (int i=0;i<quantidade_palavras;i++){
        string palavra_lida;
        arquivo >> palavra_lida;
        cout << "Na linha " << i << " : " << palavra_lida << endl;
        palavras_do_arquivo.push_back(palavra_lida);
    }

    arquivo.close();
    return palavras_do_arquivo;
}

void sorteia_palavra()
{
    vector<string> palavras = le_arquivo();

    srand(time(NULL));
    int indice_sorteado = rand() % palavras.size();

    palavra_secreta = palavras[indice_sorteado];
    cout << palavra_secreta << endl;
}

Se alguém teve problema parecido, por favor aponte o erro.

Grato desde já!

Leandro

1 resposta

Olá,

Ta complicado descobrir o problema.

Experimenta testar se vc conseguiu abrir o arquivo, algo assim:

ifstream arquivo;
arquivo.open("palavras.txt");

if(arquivo.is_open()){
  int quantidade_palavras;
  arquivo >> quantidade_palavras;

  int quantidade_palavras;
  arquivo >> quantidade_palavras;

  arquivo.close();
}
    else{
        cout << "Falha abrir o arquivo" << endl;
        exit(0);
}

Porque parece falha em abrir o arquivo.

Atte