Por que os caracteres especiais são lidos falsos do arquivo
-
20-09-2019 - |
Pergunta
Olá, meu programa salva algumas configurações (principalmente string) em um arquivo de texto, para recuperá -las mais tarde, mas infelizmente! Os personagens especiais voltam irreconhecíveis!
SaveSettings salva as cordas uma a uma ...
void email::saveSettings(string filename){
ofstream savefile(filename.c_str(),ios::out | ios::trunc);
email settingsemail(this);
savefile <<mailprog<<endl;
...
Os conjuntos de carga os recuperam ...
bool loadSettings(string filename){
char chtemp[255];
ifstream savefile(filename.c_str(), ios::in);
if (savefile.is_open()){
savefile.getline(chtemp,255);
mailprog=chtemp;
savefile.getline(chtemp,255);
smtp=chtemp;
...
Algum texto inclui a letra 'É', que é lida como '8'
Obrigado por qualquer dica
Solução
Talvez você deva considerar usar uma versão unicode do getLine :)
Ver Este artigo Para mais informações
Outras dicas
Tente adicionar ios::binary
para o seu fluxo de bandeiras do construtor.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow