1
Graphique / getline(fichier,contenu) utf8
« le: Décembre 04, 2019, 12:15:51 pm »
Bonjour
J'ai un fichier qui contient ceci:
Lorsque je fais :
la variable sf::Text menuItems[1][0] me retourne des signes cabalistiques pour le caractère accentué d'Éditer.
C'est un problèmes de conversions, mais je ne vois pas comment faire (après plein de tentatives)!!!
J'ai un fichier qui contient ceci:
Fichier
Nouvelle session
Ouvrir
Enregistrer
Enregistrer sous
Commentaire
Quitter
Éditer
Annuler
Rétablir
Couper
Copier
Coller
Préférences
Nouvelle session
Ouvrir
Enregistrer
Enregistrer sous
Commentaire
Quitter
Éditer
Annuler
Rétablir
Couper
Copier
Coller
Préférences
Lorsque je fais :
ifstream fichier(fichierLang, ios::in); // ouverture du fichier parametres.conf
string contenu;
if(fichier){ // si l'ouverture a réussi
int k=42;
getline(fichier,contenu);
menuItems[0][0].setFont(font);
menuItems[0][0].setString(contenu);
menuItems[0][0].setCharacterSize(13);
menuItems[0][0].setPosition(sf::Vector2f(6, 8));
menuItems[0][0].setFillColor(sf::Color(0,0,0));
for(int i=1;i<7;i++){
getline(fichier,contenu);
menuItems[0][i].setFont(font);
menuItems[0][i].setString(contenu);
menuItems[0][i].setCharacterSize(13);
menuItems[0][i].setPosition(sf::Vector2f(6,k ));
menuItems[0][i].setFillColor(sf::Color(0,0,0));
k=k+28;
}
k=42;
getline(fichier,contenu);
menuItems[1][0].setFont(font);
menuItems[1][0].setString(sf::String::toUtf8(contenu));
menuItems[1][0].setCharacterSize(13);
menuItems[1][0].setPosition(sf::Vector2f(60, 8));
menuItems[1][0].setFillColor(sf::Color(0,0,0));
for(int i=1;i<7;i++){
getline(fichier,contenu);
menuItems[1][i].setFont(font);
menuItems[1][i].setString(contenu);
menuItems[1][i].setCharacterSize(13);
menuItems[1][i].setPosition(sf::Vector2f(60,k ));
menuItems[1][i].setFillColor(sf::Color(0,0,0));
k=k+28;
}
}else{ // sinon
cerr << "Erreur à l'ouverture du fichier Lang!" << endl;
}
string contenu;
if(fichier){ // si l'ouverture a réussi
int k=42;
getline(fichier,contenu);
menuItems[0][0].setFont(font);
menuItems[0][0].setString(contenu);
menuItems[0][0].setCharacterSize(13);
menuItems[0][0].setPosition(sf::Vector2f(6, 8));
menuItems[0][0].setFillColor(sf::Color(0,0,0));
for(int i=1;i<7;i++){
getline(fichier,contenu);
menuItems[0][i].setFont(font);
menuItems[0][i].setString(contenu);
menuItems[0][i].setCharacterSize(13);
menuItems[0][i].setPosition(sf::Vector2f(6,k ));
menuItems[0][i].setFillColor(sf::Color(0,0,0));
k=k+28;
}
k=42;
getline(fichier,contenu);
menuItems[1][0].setFont(font);
menuItems[1][0].setString(sf::String::toUtf8(contenu));
menuItems[1][0].setCharacterSize(13);
menuItems[1][0].setPosition(sf::Vector2f(60, 8));
menuItems[1][0].setFillColor(sf::Color(0,0,0));
for(int i=1;i<7;i++){
getline(fichier,contenu);
menuItems[1][i].setFont(font);
menuItems[1][i].setString(contenu);
menuItems[1][i].setCharacterSize(13);
menuItems[1][i].setPosition(sf::Vector2f(60,k ));
menuItems[1][i].setFillColor(sf::Color(0,0,0));
k=k+28;
}
}else{ // sinon
cerr << "Erreur à l'ouverture du fichier Lang!" << endl;
}
la variable sf::Text menuItems[1][0] me retourne des signes cabalistiques pour le caractère accentué d'Éditer.
C'est un problèmes de conversions, mais je ne vois pas comment faire (après plein de tentatives)!!!