Afficher me caractère "é" en C++
Répondre à la discussion
Affichage des résultats 1 à 13 sur 13

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



  1. #1
    invite234d9cdb

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


    ------

    Bonsoir !

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

    -----

  2. #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.

  3. #3
    invite234d9cdb

    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 ù

  4. #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.

  5. A voir en vidéo sur Futura
  6. #5
    invite234d9cdb

    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 ?

  7. #6
    invite6de5f0ac

    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

  8. #7
    invite234d9cdb

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

    Ca marche, merci

  9. #8
    invite234d9cdb

    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 ?

  10. #9
    invite6de5f0ac

    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

  11. #10
    invite597d4991

    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?

  12. #11
    invite6de5f0ac

    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

  13. #12
    invite234d9cdb

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

    Préprocesseur, c'est quoi au juste ?

  14. #13
    invite6de5f0ac

    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

Discussions similaires

  1. Locus de caractère quantitatif "QTL"
    Par invite10382d0f 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 invite600c2730 dans le forum Environnement, développement durable et écologie
    Réponses: 0
    Dernier message: 30/10/2005, 14h49
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...