Je voudrais savoir...

<BLOCKQUOTE><font size="1" face="Verdana, Geneva">quote:</font><HR>Posté à l'origine par Didier Guillion:


Donc voici ma réponse (enfin, ouf) :
Je en connait pas de langage informatique qui ne puisse etre clair, harmonieux et universel, il suffit qu'il soit bien utilisé et abondamment commenté.
<HR></BLOCKQUOTE>

C'était très intéressant à lire tes propos. En effet, les théoriciens des langages de programmation rêveraient en effet de créer un langage universel qui puissent satisfaire tout le monde (il devrait peut-être essayé de scanner toute la Bible et finallement faire un petit coup de yacc là-dessus; qui sait ce que ça va donner ?
grin.gif
) ; rien de plus difficile de faire un code efficace qui soit et à la fois lisible par l'humain et à la fois lisible par la machine...
C'est bien savoir que tu maîtrises bien le C, car ce semestre, on doit faire un projet et on a décidé de le faire en C (le prof proposait de le faire avec Delphi et fournissait déjà pas mal de code, surtout la partie du scanner et du parser)...Nous on veut de la difficulté
grin.gif
; et c'est dans la difficulté qu'on apprend
smile.gif
.
Tu connaîtrais par hasard où je pourrais trouver les différentes options à mettre dans printf pour qu'il affiche du texte en couleur ??

++
 
<BLOCKQUOTE><font size="1" face="Verdana, Geneva">quote:</font><HR>Posté à l'origine par Simon:


Dans le jargon bien de chez nous (ahh notre petite suisse bien sympatique avec ces charmants villages et ces vaches de toutes les couleurs), et ben l'expression "c'est trop de la base", veut dire que c'est vraiment trop cool...
<HR></BLOCKQUOTE>
Je confirme les propos de Simon...Même dans le canton de Fribourg, ben c'est une expression connue...Par contre je ne dirais pas jargon, mais patoi
grin.gif
(je ne suis pas très sûr de l'orthographe de ce dernier) !!
Au fait, vous avez beaucoup de vaches dans le canton de Vaud ?
grin.gif
grin.gif
Moi, les vaches elles habitent devant ma fenêtre...Je mettrai une photo à l'occasion sur le forum si qqun veut
smile.gif
! Comme la neige a fait son apparition, ben faudra attendre la fonte (pour ceux qui ne le savait pas, ben en hiver les vaches ne sont pas dehors
grin.gif
grin.gif
tongue.gif
) lol

Pour revenir sur le sujet, moi je conseillerai C comme langage, car c'est the langage de Unix !! Si tu cherches plutôt un truc pour de faire de joli GUI, ben moi je dis Java
smile.gif
.

++
 
<BLOCKQUOTE><font size="1" face="Verdana, Geneva">quote:</font><HR>Posté à l'origine par Didier Guillion:
A propos des printf en couleur.

A mon avis ce n'est pas possible. Il y a une normalisation du mode console (printf, scanf) et cette console est monochrome.

Cordialement
<HR></BLOCKQUOTE>

Si, si, cela est possible...Je connais la commande pour la couleur jaune...Il y en a d'autres, mais ceux-ci je ne me rappelle plus...Donc voici ce qu'il y faut definir au debut de ton code
#define F_YELLOW() printf("\033[33m") /*pour afficher du texte en jaune*/
Donc pour afficher du texte en jaune dans la console,
F_YELLOW();
printf("Salut");
Petit probleme, le jaune reste la couleur de base par apres...Faudrait que je trouve la commande pour revenir a la normal quand je quitte le prog...Au cas ou,ben tu tapes man awk et pendant le defilement, ben il rechange automatiquement au noir !!
Donc si je trouve plus d'info, ben je te tiens au courant
wink.gif
.

++
 
pour ton printf en couleur tu peux essayer avec ces codes de couleur:

<BLOCKQUOTE><font size="1" face="Verdana, Geneva">quote:</font><HR>
First, you see the %{\033[34m%} at the beginning to put the text in blue and you may remark near the end the %{\033[0m%} to reset the graphic mode and return to normal (grey) text.

The color codes you can use with this ANSI command are the following:
0 Reset colors to 37;40
1 Bold text. In reality, it's not really bold, text is only brighter.
5 Blinking text. Many terminal apps don't support this
7 Reverse video, inverts the background and the foreground colors
30 Black
31 Red
32 Green
33 Yellow
34 Blue
35 Magenta
36 Cyan
37 White
40 Black background
41 Red background
42 Green background
43 Yellow background
44 Blue background
45 Magenta background
46 Cyan background
47 White background

You can combine many color codes in the same command by separating them with a semi-comma (';'), for example, to have a bright blue text on red background you would insert this : %{\033[1;34;41m%}

<HR></BLOCKQUOTE>

Je les ai trouvé sur Macosxhints.com dans un article pour modifier la couleur du prompt, donc je pense que cela devrait aussi jouer pour le texte
wink.gif
tient nous au courant
 
Salut,

Est tu sur de ne pas confondre entre le Terminal et la Console ?

J'ai essayé sur mon compilateur C (Codewarrior 6) et les couleurs de textes ne passent pas.

L'article sur lequel tu pointe est un article sur les commandes du Terminal.

Si quelqu'un arrive a quelque chose je suis preneur.

Cordialement
 
Bon, moi je teste toujours mes programmes a partir du terminal, que cela soit sur Sun ou chez moi avec mon petit terminal...Donc chez moi les couleurs sont modifiees...C'est peut-etre justement du parce que je fait les tests sur terminal !
Pourtant dans le livre que j'ai sur le C, il me semble qu'ils ne font pas reference que cela ne fonctionne que pour le terminal !
Faut que j'essaie ailleurs alors...
Encore merci pour l'adresse Simon !

Bon, j'ai un petit cours de math sur les automates qui m'attend...L'assistant vient juste de me chercher...

++
 
Juste faire attention a une chose...Pour le terminal il faut mettre des % , alors que dans le code C, ben il n'y en as pas...donc juste 033[40m donc printf("033[40m") par exemple...Je n'ai pas teste ce que je viens de noter, mais c'est dans le format suivant que cela se note
033]xxm ou xx est un nombre
wink.gif


++
 
J'utilise le cc à partir du terminal...Tu es sûr que ce n'est pas ton compilateur qui a un problème
wink.gif
... Non, alors je ne vois pas d'où peut venir le problème, si ce n'est justement que chez moi, ben vu que le lance le tout depuis le terminal, ben tout se passe donc dans le terminal... Mais à mon avis il doit bien y avoir une fonction qui doit permettre de changer le texte de couleur, sans quoi nous n'aurions pas la possibilité d'écrire du texte en couleur...Essaye donc de compiler une fois le tout dans le terminal et tu verras certainement une différence
wink.gif
...

++
 
<BLOCKQUOTE><font size="1" face="Verdana, Geneva">quote:</font><HR>Posté à l'origine par Didier Guillion:
Attends, attends, je croyais qu'on parlait C Ansi...

Je reitere donc ma question : Tu utilise quoi comme compilateur ?

As tu essayé ceci avec d'autres compilateur C sur d'autres plateformes ?

A mon avis cela marche chez toi mais n'est pas standard.

Cordialement
<HR></BLOCKQUOTE>

Est-ce que la commande fait partie du C ANSI, ben je sais pas, vu que je ne le connais pas par coeur
smile.gif
. Donc j'utilise cc et gcc comme compilateur (donc ceux-ci se basent bel et bien sur le C ANSI je pense) et j'ai déjà testé les commandes sur OS X et sur Sun... Et toi, tu utilises quoi comme compilateur ?? Et sur quels plateformes ??

++
 
ca ne viens pas du compilateur!

je pense que c'est stdout qui parse le flue.

Ex:
1) le meme binaire fonctionne en couleur dans le terminal

2)dans une appli cocoa ou je lance ce meme executable a l'aide d'un NSTask, et ou je redirige le stdout vers un NSPipe, et ou j'affiche le conenu de NSPipe dans un NSTextView, j'obtient ca:

{[34m}Hello World!

au lieu de

{}Hello World! en bleu dans le terminal...
 
Je vois que c'est la panique à bord, les enfants !
smile.gif


Les commandes dont vous parlez me semblent en effet concues pour Terminal, et ceci pour 2 raisons :

1) La séquence %{} n'est pas connue du C, ni du C++, ni d'objC.

2) la séquence "\033[40m" est tout simplement une séquance shell pour un terminal passif géré par terminfo ou termcap.

Sur ces terminaux (monochromes, rappelons-le), les attributs comme le reverse ou le souligné étaient passé au travers de séquences escapes : on envoyait le code escape suivi de codes ascii que reconnaissait le terminal.

Le \033 est tout simplement le code escape codé en base octale, une base numérique qui a été utilisée lgtps sous unix (je m'en sert encore pour coder les séquences termcap).

La séquence escape dont vous parlez et qui est sensée, si j'ai bien compris, affecter une couleur à un texte ne peut marcher que si l'émulateur de terminaux (chez nous, l'application Terminal) comprend cette séquence. Quant à l'utiliser avec printf(), le seul moyen est de transformer le beau 033 en code escape dans la chaine à afficher. Du genre :

printf("\e[40m");

puisque en C ANSI, \e = escape (0x1b).

Mais comme le résultat est fonction de ce que sait interpréter Terminal (c'est à dire malheureusement pas grand chose), ne vous étonnez pas si ca ne marche pas.
smile.gif
 
merci pour cette precision,

j'avais pas completement faux en disant que c'etait la sortie standard qui interpretait le flux, non?

c'est vrais que le "\033" aurait du me mettre la puce a l'oreille.


voila un Hello World en couleur dont je me suis servi pour faire les tests ;-)

#include &lt;stdlib.h&gt;
#include &lt;stdio.h&gt;

int main(int argc,char ** argv)
{
printf("%\e[34m%H%\e[33me%\e[32ml%\e[31ml%\e[35mo %\e[0mW%\e[35mr%\e[36mo%\e[\
34ml%\e[31md!%\e[0m\n");
return 0;
}
 
Sans les % , ben ça marche aussi...Petie question : Est-ce que cela permet d'afficher alors du texte en couleur avec n'importe quel compilateur de C standard ??

++
 
n'importe quel compilateur qui permet d'executer le binaire dans un terminal.

donc pas code warrior...
 
les compilo sous windows permettent de faire des .exe pour dos, mais dos n'emule pas un terminal alphanumerique, non?