2010-02-12 2 views
2

Salut, mon programme enregistre certains paramètres (principalement la chaîne) dans un fichier texte, pour les récupérer plus tard, mais hélas! Les caractères spéciaux reviennent méconnaissables!pourquoi les caractères spéciaux sont-ils lus faux à partir du fichier?

SaveSettings enregistre les chaînes une par une ...

void email::saveSettings(string filename){ 
    ofstream savefile(filename.c_str(),ios::out | ios::trunc); 
    email settingsemail(this); 
    savefile <<mailprog<<endl; 
    ... 

loadSettings les récupère ...

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; 
    ... 

texte inclut la lettre 'é', qui est relue comme « 8 '

merci pour tout soupçon

Répondre

2

Peut-être que vous devriez envisager d'utiliser une version unicode o f getline:)

Voir this article pour plus d'informations

2

Essayez d'ajouter ios::binary à vos drapeaux du constructeur de flux.