Afficher des caractères accentués dans la console

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 :

#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 :

J'Úcris Þa...

 

console_caractères_mauvais

 

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 :

#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 :

console_caractères

 

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

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *