Afficher caractères pique, coeur,etc...

Afficher caractères pique, coeur,etc... - C - Programmation

Marsh Posté le 26-10-2004 à 16:41:37    

Bonjour dans le cadre d'un Tp on doit programmer un jeu de carte en C sous Linux.
Comment afficher les caractères "pique", "coeur", etc... de la table ANSI
Faut il utiliser une library si oui laquelle
Merci d'avance.


---------------
De Marx j'ai avant tout retenu la notion de capital
Reply

Marsh Posté le 26-10-2004 à 16:41:37   

Reply

Marsh Posté le 26-10-2004 à 17:02:35    

ben tu prends la table ANSI ...

Reply

Marsh Posté le 27-10-2004 à 12:52:36    

Taz a écrit :

ben tu prends la table ANSI ...


mais en pratique (j'suis pas sur que la table ansi soit installé par défaut, c meme sur j'ai essayé avé le code ansi ca m'affichait autre chose)


---------------
De Marx j'ai avant tout retenu la notion de capital
Reply

Marsh Posté le 27-10-2004 à 12:54:49    

thurfin a écrit :

mais en pratique (j'suis pas sur que la table ansi soit installé par défaut, c meme sur j'ai essayé avé le code ansi ca m'affichait autre chose)


 :heink:  
ASCII c'est un standard de codage de caractères sur un octet, ya pas de installé ou pas installé qui tienne, j'ai jamais vu un ordi qui n'utilisait pas le standards ascii :sweat:
 
Tiens, si tu veux connaitre les codes de tous les caractères ascii dispos (Taz, regarde pas sinon tu vas me taper)

Code :
  1. #include <stdio.h>
  2. int main(int argc, char *argv[])
  3. {
  4.     int car;
  5.     unsigned int ecar;
  6.    
  7.     printf("Signed chars:\n" );
  8.     for(car=0; car<128; ++car)
  9.         printf("%d > %c\n", car, (char)car);
  10.     printf("\nUnsigned chars:\n" );
  11.     for(ecar=0; ecar<256; ++ecar)
  12.         printf("%d > %c\n", ecar, (unsigned char)ecar);
  13.     return 0;
  14. }


Message édité par masklinn le 27-10-2004 à 13:03:07

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 27-10-2004 à 13:37:15    

Masklinn a écrit :

:heink:  
ASCII c'est un standard de codage de caractères sur un octet, ya pas de installé ou pas installé qui tienne, j'ai jamais vu un ordi qui n'utilisait pas le standards ascii :sweat


 
Il a dit ANSI, pas ASCII. Il te faut donc dire à ton système d'installer la page de code correspondante (plutôt que Latin1, Arab3, etc.) pour qu'il sache que faire des caractères 128 à 255.
 
Sous MS DOS, ça se faisait avec CHCP je crois.
 
Sous Windows, ça se fait à l'installation, sachant qu'a priori, en France, US et UK, on utilise tous le ISO8859-1. Tiens, regarde:
http://msdn.microsoft.com/library/ [...] e_81rn.asp
 
Bref, le caractère &spades; n'est pas forcément 0xAA dans ta page de code...
 

Reply

Marsh Posté le 27-10-2004 à 14:13:39    

Masklinn a écrit :

:heink:  
ASCII c'est un standard de codage de caractères sur un octet, ya pas de installé ou pas installé qui tienne, j'ai jamais vu un ordi qui n'utilisait pas le standards ascii :sweat:


 
 
ca existe malgrés tout (EBCDIC chez ibm), et il existe plusieurs tables de codage ascii sur 8 bits

Reply

Marsh Posté le 28-10-2004 à 15:27:29    

effectivement je parlait bien de la table ansi 850 , ls n° de caractère sont ceux allant de 03H à 06H mais comment les afficher dans un programme C sous Linux  :??:

Reply

Marsh Posté le 28-10-2004 à 15:36:03    

thurfin a écrit :

effectivement je parlait bien de la table ansi 850 , ls n° de caractère sont ceux allant de 03H à 06H mais comment les afficher dans un programme C sous Linux  :??:


Va chercher bonheur là:
   http://lct.sourceforge.net/
 
Ceci-dit, c'est super super rare les programmes qui affichent le Tapis Vert en mode console (sous Linux ou Windows). C'est tellement dépendant de milliards de trucs qu'il vaut mieux afficher "Pique", ou passer en mode graphique...

Reply

Marsh Posté le 28-10-2004 à 19:13:19    

+1 : ces caractères (code inférieur à 0x20) sont appelés caractères de contrôles. En mode console, y'a pas beaucoup de shell qui vont apprécier via un "printf()" ou un "cout".


---------------
If I want to fail and succeed, which I have done ?
Reply

Marsh Posté le 28-10-2004 à 19:14:59    

oui je pense que je vais écrire en toute lettres surtout que je n'ai pas les droit root à mon école :D

Reply

Marsh Posté le 28-10-2004 à 19:14:59   

Reply

Marsh Posté le 28-10-2004 à 21:35:55    

lsdyoyo a écrit :

+1 : ces caractères (code inférieur à 0x20) sont appelés caractères de contrôles. En mode console, y'a pas beaucoup de shell qui vont apprécier via un "printf()" ou un "cout".


 
En 8879 (celle qui sert de base à l'HTML, ou aux fontes Symbol par exemple) il sont entre A7 et AA. Il me semble que MS-DOS reprenait pas mal de ceux là plutôt que de s'encombrer avec les charactères ëspågnøls et nðrdíques :  
http://www.bbsinc.com/pic/fnt-symbol.gif
 
 

Reply

Marsh Posté le 30-10-2004 à 21:14:39    

Lam's a écrit :

Va chercher bonheur là:
   http://lct.sourceforge.net/
 
Ceci-dit, c'est super super rare les programmes qui affichent le Tapis Vert en mode console (sous Linux ou Windows). C'est tellement dépendant de milliards de trucs qu'il vaut mieux afficher "Pique", ou passer en mode graphique...


j'ai pas encore le niveau (1 mois de c d'expéreince seulement)


---------------
De Marx j'ai avant tout retenu la notion de capital
Reply

Marsh Posté le 31-10-2004 à 01:12:39    

Pourquoi ne pas utiliser le codage Unicode (UTF-8 par exemple qui reste compatible avec les 128 premiers caractères de la table ASCII). Pour l'exemple, le fichier source était encodé dans ce format.

Code :
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main(int nb_parametres, char** parametres)
  4. {
  5. fprintf(stdout, "♠♣♥♦\n" );
  6. exit(EXIT_SUCCESS);
  7. }


Dans le cas où tu n'a pas la possibilité d'écrire ton programme au format UTF-8 :

Code :
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main(int nb_parametres, char** parametres)
  4. {
  5. char symboles[15+1]={226, 153, 160, '-', 226, 153, 163, '-', 226, 153, 165, '-', 226, 153, 166, 0};
  6. fprintf(stdout, "%s\n", symboles);
  7. exit(EXIT_SUCCESS);
  8. }

Le terminal doit être capables d'afficher de l'UTF-8 ! (voir configuration des "locales", pour ma part j'utilise "fr_FR.UTF-8@euro" ).
 
Pique : "♠" ou "&spades;".
Trèfle : "♣" ou "&clubs;".
Coeur : "♥" ou "&hearts;".
Carreau : "♦" ou "&diams;".
 
http://alexandre.alapetite.net/doc [...] tml#pasie6
 
Attention, un caractère au format UTF-8 a une taille variable, donc pour afficher les symboles "♠", "♣", "♥" ou "♦", il faut que tu utilises une chaîne de caractères sans oublier le '\0' ! Dans l'exemple que je fournis, j'ai mis des tirets ('-') pour bien séparer les caractères Unicode !

/home/oli/prog/hfr > ./cartes
♠♣♥♦
♠-♣-♥-♦
/home/oli/prog/hfr >

Bon courage ! :D


Message édité par darkoli le 31-10-2004 à 01:53:34

---------------
Le site de l'année :D (XHTML 1.0 strict) : http://darkoli.free.fr/index.html
Reply

Marsh Posté le 02-11-2004 à 16:02:45    

on va se tenter ca mais bon c pas gagné :D


---------------
De Marx j'ai avant tout retenu la notion de capital
Reply

Marsh Posté le 02-11-2004 à 16:12:11    

bon ben ca marche pas à mon école non pas qu'il y ait bug mais ca affiche tout autre chose (â-⣠etc...)
Merci qd meme.
[EDIT] je ne pense pas qu'il nous soit possible de faire en sorte que les terminaux puisse lire UFT8.


Message édité par thurfin le 02-11-2004 à 16:17:43

---------------
De Marx j'ai avant tout retenu la notion de capital
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed