Bonjour à tous,
Comment peut-on afficher (par exemple) le caractère ==> ² ?
Merci.
Bonjour à tous,
Comment peut-on afficher (par exemple) le caractère ==> ² ?
Merci.
Alt + 0178.
Se référer à ceci.
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![]()
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).
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
Code : Sélectionner tout - Visualiser dans une fenêtre à part printf("x\u2072\n");
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![]()
J'ai essayé ce code :
Mais sa n'a pas marché...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 printf("x\u2072\n"); printf("x\u2082\n");
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 :
Sous Linux, t'as pas besoin d'une fonction genre CharToOem parce que la console est déjà en UNICODE.
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; }
Rajoutes l'option suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part -std=c99
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![]()
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 ?
Ca n'a rien à voir avec MS. On compte encore avec les doigts les compilateurs conformes à C99.Envoyé par Pouet_forever
Il y a un débat C99 vs C90 iciEnvoyé par Pouet_forever
.
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.Envoyé par A.i.A
Merci bien,La solution la plus simple, sous Windows, c'est d'appeler la fonction CharToOem avant d'afficher le caractère ou la chaîne.
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?
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) ...
D'ailleurs pour ce qui est de GCC (dont on semble parler ici) :
=> http://gcc.gnu.org/onlinedocs/gcc-4....html#StandardsA 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.
Je vous remercie![]()
Partager