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 :

Afficher le caractere "exposant" !


Sujet :

C

  1. #1
    Membre actif
    Inscrit en
    Octobre 2007
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 95
    Par défaut Afficher le caractere "exposant" !
    Bonjour à tous,

    Comment peut-on afficher (par exemple) le caractère ==> ² ?

    Merci.

  2. #2
    Membre éprouvé Avatar de vg-matrix
    Inscrit en
    Février 2007
    Messages
    1 220
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Février 2007
    Messages : 1 220
    Par défaut
    Citation Envoyé par A.i.A Voir le message
    Bonjour à tous,

    Comment peut-on afficher (par exemple) le caractère ==> ² ?

    Merci.
    Alt + 0178.
    Se référer à ceci.

  3. #3
    Membre émérite
    Avatar de Pouet_forever
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    671
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 671
    Par défaut
    Tu peux regarder du côté de l'Unicode : http://www.unicode.org/fr/charts/PDF/U2070.pdf
    Pour afficher un caractère Unicode tu utilises \uXXXX où XXXX est le code de ton caractère

  4. #4
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    Ce n'est pas suffisant. Il faut se référer au paragraphe 6.4.3 de la dernière norme (lien vers le document dans la FAQ et dans l'index du forum C).

  5. #5
    Membre actif
    Inscrit en
    Octobre 2007
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 95
    Par défaut
    Bonsoir,

    vg-matrix
    Mais je veux l'afficher dans le programme (console) avec le printf
    Pouet_forever
    J'ai essayé :
    Mais sa n'a pas marché, il donne des 3 caractères bizarres
    avec :
    warning: universal character names are only valid in C++ and C99|
    Melem
    Je ne vois pas ou est le paragraphe 6.4.3 dans la FAQ C , ni un index
    Si vous pouvez indiquez un Lien

    Enfin je vous remercie pour votre aide

  6. #6
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 317
    Par défaut
    Citation Envoyé par A.i.A Voir le message
    Melem
    Je ne vois pas ou est le paragraphe 6.4.3 dans la FAQ C , ni un index
    Si vous pouvez indiquez un Lien
    => Consultez la norme C99

    => : Comment se procurer la norme du langage C ?

  7. #7
    Membre actif
    Inscrit en
    Octobre 2007
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 95
    Par défaut
    J'ai essayé ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    printf("x\u2072\n");
    printf("x\u2082\n");
    Mais sa n'a pas marché...

  8. #8
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    Ces codes correspondent à quels caractères ? 178 (en décimal) comme indiqué, en hexa, donne B2. Ca n'a pas marché chez toi parce que tu as fourni de mauvais codes en plus :
    - Ca ne marche que si le compilateur est conforme à la dernière norme, ce qui réduit déjà le nombre de compilateurs que tu peux utiliser.
    - Ca ne marche que si la console supporte le jeu de caractères UNICODE (comme la console de Linux, mais pas celle de Windows ...).
    - Ce ne sont pas tous les caractères UNICODE qui sont supportés par cette syntaxe (cf Nome::6.4.3).

    De toute façon, je n'ai pas vérifié si 0xB2 est bien le code du caractère ² dans le système UNICODE, mais je sais que c'est le code de ce caractère dans le système utilisé par l'environnement graphique de Windows (qui est windows-1252 si tu as une version européenne ...). La console cependant utilise un code OEM (OEM 850 en europe ...) qui est différent de windows-1252 (que tu as utilisé pour créer ton fichier) sur certains points. La solution la plus simple, sous Windows, c'est d'appeler la fonction CharToOem avant d'afficher le caractère ou la chaîne. Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #include <stdio.h>
    #include <windows.h>
     
    int main()
    {
        char ansi[] = "\xB2", oem[2];
        CharToOem(ansi, oem);
        printf("%s\n", oem);
        return 0;
    }
    Sous Linux, t'as pas besoin d'une fonction genre CharToOem parce que la console est déjà en UNICODE.

  9. #9
    Membre émérite Avatar de orfix
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 707
    Par défaut
    Citation Envoyé par A.i.A Voir le message
    <...>
    warning: universal character names are only valid in C++ and C99|
    <...>
    Rajoutes l'option suivante :

  10. #10
    Membre émérite
    Avatar de Pouet_forever
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    671
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 671
    Par défaut
    Le code pour le carré c'est 00B2 !
    C'est marqué dans le lien que je t'ai donné. Le 2072 est un caractère réservé
    C'est vrai que Microsoft ils avancent à reculons donc tout ce qui est nouveau tu peux oublier (enfin nouveau ... 10 ans quand même !). Enfin bref on est pas là pour faire un débat

  11. #11
    Membre actif
    Inscrit en
    Octobre 2007
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 95
    Par défaut
    Donc le code Héxa-decimal du caractère c'est 00B2, mais jusqu'à maintenant sa ne marche que si on passe par la fonction CharToOem ,

    J'utilise Code:Blocks sur Windows 7 (Integral)

    ssmario2, comment/ou je peux rajouter l'option ?

  12. #12
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    Citation Envoyé par Pouet_forever
    C'est vrai que Microsoft ils avancent à reculons donc tout ce qui est nouveau tu peux oublier (enfin nouveau ... 10 ans quand même !).
    Ca n'a rien à voir avec MS. On compte encore avec les doigts les compilateurs conformes à C99.

    Citation Envoyé par Pouet_forever
    Enfin bref on est pas là pour faire un débat
    Il y a un débat C99 vs C90 ici .

    Citation Envoyé par A.i.A
    comment/ou je peux rajouter l'option ?
    Dans les options de ton projet, onglet other compiler options, ajouter -std=c99. Mais ça ne change rien au fait que tu dois utiliser CharToOem. J'ai déjà expliqué la raison.

  13. #13
    Membre actif
    Inscrit en
    Octobre 2007
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 95
    Par défaut
    La solution la plus simple, sous Windows, c'est d'appeler la fonction CharToOem avant d'afficher le caractère ou la chaîne.
    Merci bien,

    Mais j'ai pas trouvé l'onglet "other compiler options" !
    Est ce que je dois l'écrire manuellement dans l'onglet "other options"

    et a quoi sert d'ajouter l'option?

  14. #14
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    Oui, tu dois l'écrire manuellement. Cette option indique évidemment à GCC (le compilateur par défaut de Code::Blocks) que tu utilises le C99 (la dernière version du langage C) ...

  15. #15
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 317
    Par défaut
    Citation Envoyé par Melem Voir le message
    On compte encore avec les doigts les compilateurs conformes à C99.
    D'ailleurs pour ce qui est de GCC (dont on semble parler ici) :
    A new edition of the ISO C standard was published in 1999 as ISO/IEC 9899:1999, and is commonly known as C99. GCC has incomplete support for this standard version; see http://gcc.gnu.org/gcc-4.4/c99status.html for details. To select this standard, use -std=c99 or -std=iso9899:1999.
    => http://gcc.gnu.org/onlinedocs/gcc-4....html#Standards

  16. #16
    Membre actif
    Inscrit en
    Octobre 2007
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 95
    Par défaut
    Je vous remercie

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

Discussions similaires

  1. Afficher le caractere '%' dans Flash
    Par jeffbobo dans le forum Flash
    Réponses: 6
    Dernier message: 11/12/2003, 17h40

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