Intro :
Quand on écrit une chaine de caractères avec des caractères de l’alphabet français (é, ù, ç, à, etc…) dans la console, ils s’affichent de la mauvaise façon.
Exemple :
|
1 2 3 4 5 6 |
#include <iostream> int main() { std::cout << "J'écris ça avec plein de caractères spéciaux : éùàè" << std::endl; } |
Ensuite il s’affiche dans la console :
|
1 |
J'Úcris Þa... |
Il y a donc un problème de reconnaissance des caractères spéciaux.
Explications :
Une façon de résoudre ce problème est d’utiliser cette fonction :
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
#include <Windows.h> #include <string> std::string Formater(const std::wstring& src) { char outString[512]; CharToOemW(src.c_str(), outString); return std::string(outString); } // Exemple d'utilisation : std::cout << Formater("J'écris ça avec plein de caractères spéciaux : éùàè") << std::endl; |
Maintenant on peut afficher correctement les caractères spéciaux :
Résumé :
Avec l’alphabet français on ne pouvait pas écrire de texte avec les caractères spéciaux.
Mais avec la fonction Formater() présenté, les caractères s’affichent correctement.
Références :
– http://h-deb.clg.qc.ca/Sujets/AuSecours/Afficher–Accents.html



