Comment interpréter des caractères en C++?

Résolu/Fermé
vdepontac - Modifié le 5 oct. 2022 à 15:29
mamiemando Messages postés 33077 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 avril 2024 - 19 oct. 2022 à 09:39

Bonjour, 

J'ai un projet en cours dans lequel je dois créer un petit programme en c++, et j'ai le droit de personnaliser le menu. J'ai réussi une première partie, mais je ne sais pas comment faire pour afficher correctement certains caractères (alt176 - alt177 - alt178 - alt219 - alt220 et alt223) ce qui donne ░ ▒ ▓ █ ▄ ▀

Malheureusement, j'ai 1800 et quelques erreurs dues au non-affichage de ces caractères, comme le montre cette capture d'écran.

Petite précision, je me sers de Qt 5.11.1, version imposée pour mes cours.

Bonne fin de journée,

vdepontac

A voir également:

2 réponses

[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
5 oct. 2022 à 12:33

Salut,

Ton code comprend des caractères UTF-8.

Tu devrais lire ceci pour les traiter correctement : https://wiki.qt.io/Strings_and_encodings_in_Qt

1

Je viens d'essayer, mais j'ai maintenant un autre problème. J'ai intégré QString et Qcore qui semblent etre les meilleures solutions, mais j'arrive a  in fatal error: Qstring(ou Qcore,c pareil) : No such file or directory.

Y aurait-il quelque que j'aurai loupé?

0
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
Modifié le 6 oct. 2022 à 09:55

Salut,

Il semble que ton projet ne dispose pas du chemin d'accès aux entêtes que tu inclues.

As-tu essayé ceci :


Default Re: Cannot open include file: 'QString': No such file or directory

    Finally i got it to run. Just right click on the project on the Qt Creator and select Run qmake. After that I can run the console application.

 Source : https://www.qtcentre.org/threads/58508-Cannot-open-include-file-QString-No-such-file-or-directory

0
mamiemando Messages postés 33077 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 avril 2024 7 748 > [Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024
18 oct. 2022 à 17:59

Bonjour,

Vu le message #3 je préfère poser la question : on est bien d'accord que quand tu fais ton inclusions, tu inclues bien <QString> ?

Exemple : basé sur cette page.

#include <QString>
#include <QTextStream>

int main(void) {
    QTextStream out(stdout);
    QString s4 = "орел";
    out << s4 << endl;  
    return 0;
}

Bonne chance

0
vdepontac > mamiemando Messages postés 33077 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 avril 2024
18 oct. 2022 à 18:30

J'ai dû mal m'expliquer, mais je ne me sers pas de l'environnement qt.

TEMPLATE = app
CONFIG += console c++11
CONFIG -= app_bundle
CONFIG -= qt

SOURCES += \
        main.cpp \
    cihmboucle.cpp \
    dessinconsoleV9.cpp

HEADERS += \
    cihmboucle.h \
    dessinconsoleV9.h \
    consoleJR.h

J'ai par contre trouvé une solution : Il faut inclure ci dessous dans le header qui nous intéresse : 

#include <windows.h>
using namespace std;

Puis mettre ceci dans notre fichier source : 

SetConsoleOutputCP(CP_UTF8);

---

Au final le rendu fonctionne : 

Pour plus de visibilité, voici le github de mon projet : https://github.com/vdepontac/SNIR1-developpement-03-CihmBoucle 

Un grand merci pour votre aide qui m'aura permis de ne pas chercher partout n'importe comment,

Bonne fin de journée :)

0
mamiemando Messages postés 33077 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 avril 2024 7 748 > vdepontac
19 oct. 2022 à 09:39

Bonjour,

Merci pour ton retour et merci d'avoir partagé le code. Nous avons parlé de Qt car tu as commencé à parler de QString dans ton message #3 qui font partie de Qt.

Si je regarde ton code sur github, il n'est effectivement pas (plus ?) basé sur Qt mais sur conio et la librairie standard. C'est une manière de faire alternative à un code basé sur Qt.

  • L'avantage de ton approche, c'est que ton projet ne dépend pas de Qt.
  • L'inconvénient, c'est qu'il ne pourra marcher que sous Windows. En effet l'intérêt de Qt est que (sous réserve que Qt soit installé), le code ne dépend plus de l'OS et peut être compilé par exemple pour Windows ou pour Linux.

Bref, si un jour tu veux le faire en Qt, je pense que mon message #5 devrait répondre à ton problème.

Autre point mineur, de manière étonnante, ton projet est basé sur  un fichier ".pro" et donc sur qmake, qui est habituellement utilisé pour produire le Makefile d'un un projet Qt. Ceci dit, comme le stipule ton fichier ".pro", rien n'oblige à lier le programe à Qt, et c'est d'ailleurs ce que tu as fait.

En temps normal, on aurait plutôt sur un outil comme cmake (qui n'utilise pas un fichier ".pro" mais un fichier "CMakeLists.txt "), mais ça c'est plus pour la culture.

J'espère que ces quelques précisions perfectionneront ton apprentissage de C++.

D'ici là, je te souhaite de belles études et te félicite pour avoir su résoudre ton exercice par toi-même.

Bonne continuation !

0