Répondre à la discussion
Affichage des résultats 1 à 13 sur 13

Afficher me caractère "é" en C++



  1. #1
    LicenceXP

    Afficher me caractère "é" en C++


    ------

    Bonsoir !

    Tout est dans le titre. Comment puis-je faire apparaître é dans un texte en C++ ?

    -----

  2. Publicité
  3. 📣 Nouveau projet éditorial de Futura
    🔥🧠 Le Mag Futura est lancé, découvrez notre 1er magazine papier

    Une belle revue de plus de 200 pages et 4 dossiers scientifiques pour tout comprendre à la science qui fera le futur. Nous avons besoin de vous 🙏 pour nous aider à le lancer...

    👉 Je découvre le projet

    Quatre questions à explorer en 2022 :
    → Quels mystères nous cache encore la Lune 🌙 ?
    → Pourra-t-on bientôt tout guérir grâce aux gènes 👩‍⚕️?
    → Comment nourrir le monde sans le détruire 🌍 ?
    → L’intelligence artificielle peut-elle devenir vraiment intelligente 🤖 ?
  4. #2
    zoup1

    Re : Afficher me caractère "é" en C++

    Je pense qu'il faut en savoir un peu plus pour pouvoir répondre à la question. En particulier, il faut savoir de quel environnement tu parles, et ce que tu entends par affichage.

    Dans ma config par exemple, j'édite le source et j'affiche une chaine de caractère qui contient un é.
    Je le compile et je l'execute dans une console et tout va bien... cela affiche un é dans la console..


    Je viens de tester avec un fprintf(stderr,"ééééé);
    Ok... c'est du C++ de chez C...
    Je te donne une idée, tu me donnes une idée, nous avons chacun deux idées.

  5. #3
    LicenceXP

    Re : Afficher me caractère "é" en C++

    J'utilise le logiciel Dev-C++.

    En exécutant cout<<"Hé, je t'ai vu !";
    J'obtiens à l'écran : Hù, je t'ai vu !

    Ou pas loin pour le ù

  6. #4
    zoup1

    Re : Afficher me caractère "é" en C++

    Je pense que c'est simplement un problème d'encodage et pas du tout un problème de compilateur.
    Il faudrait que tu regardes si il n'y a pas quelque chose dans l'éditeur de texte que tu utilises qui te permette de fixer l'encodage des caractères (en particulier ceux accentués). Il faudrait qu'il corresponde avec celui qui est utilisé pour ta console d'exécution...

    Je peux pas t'en dire plus... mais on trouve ce genre de choses sur le web :
    les applications Windows utilise "Cp1252" comme encodage tandis que les applications MSDOS utilise "Cp850", donc même avec de bonnes traductions définies dans un fichier, une application console peut émettre du texte parfois illisible à cause de ce problème.
    source : http://userfriendly.free.fr/christop.../8-console-api
    Je te donne une idée, tu me donnes une idée, nous avons chacun deux idées.

  7. A voir en vidéo sur Futura
  8. #5
    LicenceXP

    Re : Afficher me caractère "é" en C++

    Rebondissement de l'affaire : si je tape

    cout<<0x82;

    82 étant le code de é en ascii étendu,
    est affiché à l'écran : "130".

    130 est le code décimal de é en ascii...

    Quelqu'un a une idée du pourquoi du comment ?

  9. #6
    fderwelt

    Re : Afficher me caractère "é" en C++

    Citation Envoyé par LicenceXP Voir le message
    Quelqu'un a une idée du pourquoi du comment ?
    Bonsoir,

    Moi, p'sieu, j'ai une idée... Avec
    cout << 0x82 ;
    tu passes la valeur 0x82 à cout, il se trouve que c'est écrit en hexa, mais c'est un entier, pas un caractère. Si tu avais écrit
    cout << 130 ;
    tu ne te serais même pas posé la question. Il faut bien passer un char à cout, comme ça:
    cout << char (0x82) ;
    En fait c'est juste une surcharge:
    ostream& operator << (ostream&, int) ;
    ostream& operator << (ostream&, char) ;

    -- françois
    Les optimistes croient que ce monde est le meilleur possible. Les pessimistes savent que c'est vrai.

  10. Publicité
  11. #7
    LicenceXP

    Re : Afficher me caractère "é" en C++

    Ca marche, merci

  12. #8
    LicenceXP

    Re : Afficher me caractère "é" en C++

    Mais question : pour faire apparaître ce é je fais actuellement :

    char e_aigu=0x82;
    char e_grave=0x8A;
    cout<<"Le pr"<<e_aigu<<"sent programme g"<<e_grave<<"re et affiche des r"<<e_aigu<<"sultats";

    Ce qui donne "Le présent programme gère et affiche des résultats".

    Comme vous le voyez c'est assez lourd et pénible à mettre en oeuvre : y aurait-il une solution plus intelligente et plus rapide ?

  13. #9
    fderwelt

    Re : Afficher me caractère "é" en C++

    C'est sûr que c'est moche... mais il n'y a pas d'autre solution, c'est une question de bibliothèque "standard".

    Si les ostreams de ton implémentation savent gérer les caractères Unicode, pas (trop) de problèmes. Mais sinon c'est la galère.

    En vrai on met plutôt les messages dans un tableau (par exemple):
    char *messages[] = {
    // ...
    "Affichage du résultat",
    // ...
    } ;
    et on fait
    cout << messages[le_bon_indice] ;
    Comme ça en cas de portage (ou de traduction) seule la table de messages doit être réencodée ou traduite.

    Mais je suis d'accord, on ne devrait pas avoir à faire ça.

    -- françois
    Les optimistes croient que ce monde est le meilleur possible. Les pessimistes savent que c'est vrai.

  14. #10
    overmind

    Re : Afficher me caractère "é" en C++

    Citation Envoyé par LicenceXP Voir le message
    Mais question : pour faire apparaître ce é je fais actuellement :

    char e_aigu=0x82;
    char e_grave=0x8A;
    cout<<"Le pr"<<e_aigu<<"sent programme g"<<e_grave<<"re et affiche des r"<<e_aigu<<"sultats";

    Ce qui donne "Le présent programme gère et affiche des résultats".

    Comme vous le voyez c'est assez lourd et pénible à mettre en oeuvre : y aurait-il une solution plus intelligente et plus rapide ?

    Préprocesseur?

  15. #11
    fderwelt

    Re : Afficher me caractère "é" en C++

    Citation Envoyé par overmind Voir le message
    Préprocesseur?
    Bonsoir,

    C'est effectivement une méthode assez utile. Mais il est vrai que là-dessus Java est mieux, avec ses caractères Unicode style '\u82', mais au prix de la simulation de la JVM.

    Alors qu'il serait tellement plus simple d'avoir une fois pour toutes un codage sur 16, voire 32 bits, pour tous les caractères... Ce serait trop simple peut-être.

    -- françois
    Les optimistes croient que ce monde est le meilleur possible. Les pessimistes savent que c'est vrai.

  16. #12
    LicenceXP

    Re : Afficher me caractère "é" en C++

    Préprocesseur, c'est quoi au juste ?

  17. Publicité
  18. #13
    fderwelt

    Re : Afficher me caractère "é" en C++

    Citation Envoyé par LicenceXP Voir le message
    Préprocesseur, c'est quoi au juste ?
    Bonjour,

    C'est le bestiau qui gère les #define et autres #if...#endif. &#0192; l'origine c'était un programme complètement indépendant (cpp sous Unix BSD / Solaris) qui, à partir d'un fichier source (.c), produisait un fichier intermédiaire (.i) en faisant (entre autres) les choses suivantes:
    - virer les commentaires,
    - insérer le fichier original à la place de chaque #include (oui, ça peut être énorme),
    - remplacer les macros par leur expansion,
    - évaluer les #if et ne garder que les lignes nécessaires.
    Ensuite le compilo (cc) fabrique un objet linkable (.o). Le préprocesseur pouvait d'ailleurs être utilisé indépendamment de C/C++, par exemple pour bricoler des fichiers sources de données "variables" (en fonction de l'environnement par exemple).

    Auhourd'hui le préprocesseur est souvent directement intégré dans l'EDI et on n'a pas (à moins d'options spéciales en général bien planquées) accès au .i.

    -- françois
    Les optimistes croient que ce monde est le meilleur possible. Les pessimistes savent que c'est vrai.

Discussions similaires

  1. Locus de caractère quantitatif "QTL"
    Par le_gemaux dans le forum Biologie
    Réponses: 3
    Dernier message: 14/05/2007, 09h30
  2. Météo France souligne le caractère "spectaculaire" des températures de cet automne
    Par Tenacatita dans le forum Environnement, développement durable et écologie
    Réponses: 0
    Dernier message: 30/10/2005, 14h49
Découvrez nos comparatifs produits sur l'informatique et les technologies.