Olá.
Quando fui alterar a função imprime_palavra para utilizar o modificador const do parâmetro chutou eu tive um problema de runtime.
void imprime_palavra(std::string& palavra_secreta,
const std::map<char, bool>& chutou)
{
for (char letra : palavra_secreta)
{
if (chutou.find(letra) == chutou.end() || chutou.at(letra))
{
std::cout << letra << " ";
}
else
{
std::cout << "_ ";
}
}
std::cout << std::endl;
}
Porém quando inverto a lógica do IF o código passa a funcionar.
void imprime_palavra(std::string& palavra_secreta, const std::map<char, bool>& chutou)
{
for (char letra : palavra_secreta)
{
if (chutou.find(letra) == chutou.end() || !chutou.at(letra))
{
std::cout << "_ ";
}
else
{
std::cout << letra << " ";
}
}
std::cout << std::endl;
}
Por algum motivo estranho não consigo ler o arquivo palavras.txt em modo debug no windows, com o visual studio, então não consigo saber qual é o erro de runtime.
Por que a lógica não funciona bem quando uso o primeiro código? E como resolvo o problema de leitura do arquivo?