enquanto eu estava no VSCode funcionava perfeitamente, porém após a mudança para o Visual Studio, não consigo mais adiconar palavras, o arquivo de texto está na mesma pasta dos outros arquivos, qual pode ser o problema?
enquanto eu estava no VSCode funcionava perfeitamente, porém após a mudança para o Visual Studio, não consigo mais adiconar palavras, o arquivo de texto está na mesma pasta dos outros arquivos, qual pode ser o problema?
Olá, Rennan! Tudo bem?
Na imagem, é possível ver que a tentativa de adicionar uma nova palavra ao arquivo "words.txt" resulta em uma mensagem de erro "Failed to open file".
Uma causa comum para esse tipo de problema é o caminho do arquivo que não está sendo encontrado corretamente pelo programa. No Visual Studio, o diretório de trabalho padrão (o local onde o programa procura por arquivos quando você não especifica um caminho completo) é geralmente o diretório do projeto, mas pode ser diferente dependendo das configurações do projeto ou da maneira como você está executando o programa.
Aqui estão algumas sugestões para resolver o problema:
Verifique o Caminho do Arquivo: certifique-se de que o arquivo "words.txt" está no diretório de trabalho atual do seu projeto. Você pode verificar e alterar o diretório de trabalho nas propriedades do projeto, na seção de depuração.
Caminho Absoluto: como uma solução temporária, você pode tentar usar um caminho absoluto para o arquivo "words.txt" na função file.open()
. Isso garantirá que o programa saiba exatamente onde encontrar o arquivo.
Além dessas duas sugestões, imagino que o problema pode está relacionado com a forma que você fechou o arquivo, no caso, o problema está relacionado ao fechamento do arquivo.
No código desenvolvido em aula, o fechamento do arquivo (arquivo.close()
) está dentro do bloco if (arquivo.is_open())
. Isso garante que o arquivo seja fechado apenas se tiver sido aberto com sucesso.
Por outro lado, no seu código, o fechamento do arquivo (arquivo.close()
) está fora do bloco if (arquivo.is_open())
. Isso significa que o arquivo será fechado independentemente de ter sido aberto com sucesso ou não.
Se o arquivo não puder ser aberto com sucesso, o programa irá para o bloco else
e exibirá a mensagem de erro, mas tentará fechar o arquivo de qualquer maneira. Isso pode causar um erro adicional, pois o objeto arquivo
pode não ter sido inicializado corretamente se a abertura falhar.
Portanto, o seu código, ao tentar fechar o arquivo fora do bloco if (arquivo.is_open())
, pode causar um comportamento indefinido o erro que você recebeu, pois você está tentando fechar um arquivo que potencialmente nunca foi aberto com sucesso.
Experimente essas sugestões e veja se alguma delas resolve o seu problema.
Espero ter ajudado e bons estudos!
Segui suas sugestões porém o mesmo problema persiste, coloquei até mesmo um caminho absoluto(apesar de o programa já estar no diretorio do projeto, na imagem acima eu inclusive mostrei a pasta lá aberta) é estranho pois o programa faz uma abertura do mesmo arquivo para sortear uma palavra secreta, e nesse primeiro momento, funciona normalmente: Porém após esse abertura, o programa só não consegue mais abrir na hora de realizar o salvamento do arquivo atualizado(print nova depois de seguir a sugestões):
como pode ver coloquei o fechamento do arquivo dentro do file.is_open e um caminho absoluto(o txt está no mesmo diretorio do projeto) o que será que pode estar dando errado? pode ser algum problema relacionado a permissoes ? //está com um probleminha também pois letras corretas estão aparecendo na parte de letras erradas, mas ja estou consertando, pode ignorar isso, valeu