IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Utiliser du texte avec des accents


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 399
    Par défaut Utiliser du texte avec des accents
    Bonjour,

    Je débute en programmation cpp et j'ai un petit problème avec un tuto.

    Voilà ce qu'ils disent:
    Un mot sur Windows

    Si vous êtes sous Windows et que vous tentez d’afficher du texte avec des accents, vous allez obtenir des caractères bizarres. Pour afficher du code avec des accents, vous allez devoir ajouter les lignes 2, 3 et 8 dans votre code. Nous en reparlerons plus tard.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #include <iostream>
    #define NOMINMAX
    #include <Windows.h>
     
    int main()
    {
        // À utiliser avant d'afficher du texte.
        SetConsoleOutputCP(1252);
        std::cout << "Oui, je peux utiliser éèàï !" << std::endl;
    }
    Le problème c'est qu'après avoir compilé leur code, voilà ce que j'obtiens:
    Oui, je peux utiliser éèÃ*ï !

    Donc pas du tout la même phrase qu'eux..
    D'où vient le problème ?

  2. #2
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2011
    Messages
    750
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 750
    Par défaut
    Cela est très dépendant du format d'enregistrement des fichiers. J'ai l'impression que tu enregistres en utf-8, mais configure la console en ANSI Latin 1 -> les formats ne sont pas compatibles, l'affichage ne correspond pas. Il faudrait utiliser 65001 à la place de 1252.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 399
    Par défaut
    Ah oui, ça fonctionne parfaitement avec 65001.
    2ème code que je teste dessus et 1er plantage..
    Jme demande si je ne dois pas changer de tuto, mais c'est difficile d'en trouver des récents..
    En tout cas merci pour ton aide..

    edit: Encore plus bizarre que personne ne leur ait signalé leur erreur depuis le temps, ce que je viens de faire.

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 144
    Billets dans le blog
    4
    Par défaut
    Le code marche parfaitement tel quel sur mon Windows 10 en compilant avec VS2019.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 399
    Par défaut
    Citation Envoyé par Bousk Voir le message
    Le code marche parfaitement tel quel sur mon Windows 10 en compilsant avec VS2019.
    Ba moi aussi je suis sous Windows 10 avec vs2019 et ça ne fonctionne pas..

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 144
    Billets dans le blog
    4
    Par défaut
    Le code est tout de même bof et plein de valeurs magiques.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #include <iostream>
    #include <windows.h>
     
    int main()
    {
        SetConsoleOutputCP(CP_UTF8);
        std::cout << u8"Oui, je peux utiliser éèàï !";
    }
    Est plus lisible et montre clairement l'objectif.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 15/04/2011, 17h26
  2. [perl/Tk] inserer du texte avec des accents
    Par seben dans le forum Langage
    Réponses: 1
    Dernier message: 25/01/2008, 09h46
  3. Recherche avec des accents!?
    Par mona dans le forum Access
    Réponses: 3
    Dernier message: 14/06/2005, 20h36
  4. [Javascript] Afficher du texte avec des intervalles
    Par Invité4 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 02/01/2005, 21h29
  5. Réponses: 1
    Dernier message: 06/08/2003, 11h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo