Du texte en couleur dans la console ? [C++ débutant] - C++ - Programmation
Marsh Posté le 03-03-2006 à 08:50:54
Avec la fonction system(), il y a une commande DOS pour changer la couleur du texte/fond, ca devrait fonctionner.
Marsh Posté le 03-03-2006 à 09:00:30
ParadoX a écrit : Est-il possible de faire afficher du texte en console d'une certaine couleur ? |
Je suppose que ça dépend de ta console. Sous linux, la plupart des consoles (peut-être toutes) se conforment aux séquences d'échappement ANSI
http://frexx.de/xterm-256-notes/, http://adm.lacitec.on.ca/~ymicha/m [...] scape.html
Après, est-ce que ça marche sur la console de windows, je n'en ai aucune idée...
Marsh Posté le 03-03-2006 à 09:00:45
franceso a écrit : Je suppose que ça dépend de ta console. Sous linux la plupart des consoles (peut-être toutes) se conforment aux séquences d'échappement ANSI |
désolé, pour le post en double : erreur de manipulation
Marsh Posté le 03-03-2006 à 12:42:04
Non je sais que ça marche, mais je ne sais pas si c'est difficile de le mettre en oeuvre ^^
Si oui, on laisse tomber
Marsh Posté le 03-03-2006 à 13:44:26
Si tout marche bien, c'est rien de compliqué :
si tu disposes d'une commande DOS, ça peut se faire avec un system() comme l'a dit LePhasme
si tu utilises des séquences d'échappement ANSI, c'est simplement des caractères spéciaux à envoyer sur la sortie standard...
Marsh Posté le 03-03-2006 à 13:50:49
Salut,
http://www.codeguru.com/Cpp/W-D/co [...] php/c3959/
la doc sur le mode console de windows sur msdn:
http://msdn.microsoft.com/library/ [...] ations.asp
Marsh Posté le 03-03-2006 à 14:32:03
Merci ça marche pas trop mal, je vais m'amuser avec ça
Marsh Posté le 03-03-2006 à 21:11:22
Hm je n'arrive pas à faire afficher chaque element de ma Liste de sa couleur
Ya surement une erreur qqart
Chrisbk, t'es la ? (j'ai essayé de l'implémenter dans la classe Formater que tu m'as donnée, pour l'indentation !)
Marsh Posté le 03-03-2006 à 21:53:34
Je suis tombé la dessus:
http://www.codeproject.com/cpp/AddColorConsole.asp
ça a l'air de marcher, sauf que ça coince avec ma classe Formater
Code :
|
qui elle aussi touche à cout .. y-a-t'il un moyen de coupler les 2 ?
Marsh Posté le 03-03-2006 à 22:52:26
ParadoX a écrit : |
Si tu disais precisement ce que tu veux comme resultat (avec un exemple) ca serait plus facile de t'aider...
Mais je pense que tu n'as pas mise ton instruction de couleur au bont endroit...
Marsh Posté le 04-03-2006 à 12:12:05
Chaque Forme dans la liste a comme donnée membre un int qui indique sa couleur. J'aimerais faire afficher ce texte en fonction de la couleur de chaque forme. C'est à dire si un trianlge est rouge, le faire afficher en rouge !
Il ya juste que cout a été redéfini 2 fois, une fois ds ma classe plus haut, et une fois dans le code de cette gestion des couleurs. je voulais simplement savoir comment les faire coexister !
Marsh Posté le 04-03-2006 à 13:19:50
Voila, j'ai trouvé plus simple:
http://www.cppfrance.com/code.aspx?ID=9234
Mais je ne parviens tjrs pas à changer les couleurs quand il faut
Dans ma liste:
Code :
|
monIterateur.valeur()->Print(tmp); est l'element actuel, c'est à dire soit une forme, soit un groupe. Seul une forme a une couleur.
voici les Print() de forme et de groupe:
Code :
|
Code :
|
Maintenant, j'ai beau ajouter
Code :
|
avant et
Code :
|
après l'affichage de la forme, ça ne donne jamais ce que je veux.
Marsh Posté le 04-03-2006 à 14:12:31
Citation : |
Non! une forme et un groupe ont aussi une couleur: la couleur par defaut!
Citation :
avant et
après l'affichage de la forme, ça ne donne jamais ce que je veux. |
Comment ca se fait qu'on ne les voient nulles par dans le peu de code que tu donnes!
Marsh Posté le 04-03-2006 à 14:20:30
Parce que j'ai essayé tous les endroits possibles et imaginables, mais le plus logique me parait etre ici:
Code :
|
et le groupe on laisse tel quel
Code :
|
mais ça ne marche pas vraiment
Marsh Posté le 04-03-2006 à 15:06:43
en gros, tu veux ca:
?
et getcolor() ca sort d'ou?
Comme j'ai pas tout suivi, fais un schema avec tes classes et les relations entre elles, idealement, donne le header de chaque classe...
Marsh Posté le 04-03-2006 à 15:27:27
Presque ! Chaque forme peut avoir n'importe quelle couleur ! Je veux juste afficher chaque forme de SA couleur. Il peut y avoir plusieurs formes de différentes couleurs au sein d'un groupe !
Shéma des classes, en haut à droite:
http://orgasm.free.fr/hfr/shemac++.jpg
(entre FORME et le Triangle, Carre et Parallelogramme, rajouter une classe Polygone)
Puis les headers:
Code :
|
Code :
|
Code :
|
Puis, dérivés de FORME:
--> Carre
--> Parallelogramme
--> Triangle
Headers ((je mets juste Rond et Polygone)
Code :
|
Code :
|
Marsh Posté le 04-03-2006 à 15:53:25
Une classe de base utilisée plymorphiquement doit avoir un destructeur virtuel public. Sinon, c'est pas la moyenne
L'acces aux membres d'une classe est normalement privé par défaut, et non protected.
Marsh Posté le 04-03-2006 à 15:55:27
Tu definie le code de print() dans la classe forme
Que fait print() dans les classes derivés?
Marsh Posté le 04-03-2006 à 16:28:09
++fab a écrit : Une classe de base utilisée plymorphiquement doit avoir un destructeur virtuel public. Sinon, c'est pas la moyenne |
J'ai rajouté le destructeur virtual ds objet
Faut également le mettre dans Forme et Groupe ?
Protected parce que je veux que les classes dérivées y aient accès, non ?
breizhbugs --> le Print() sans parametres dans les formes (triangle, etc) est un autre print, pour faire afficher les propriétés d'une forme particuliere, cette fonction n'a rien à voir avec l'affichage coloré de la liste.
Le virtual void Print(Formater& ) const; est précisé jusqu'a Forme.h, pas plus loin (chaque forme ayant une couleur)
Marsh Posté le 04-03-2006 à 16:35:44
ParadoX a écrit : Faut également le mettre dans Forme et Groupe ? |
Non.
Citation : Protected parce que je veux que les classes dérivées y aient accès, non ? |
Les classes dérivées passeront par les accesseurs. Avec un acces protected, tu ne peux pas garantir le maintien des invariants (pour le peu que tu en ais). Les classes dérivées pouvant en faire ce qu'elles veulent, sans connaissances des invariants de la classe de base. L'usage de protected, dans ton cas d'école, est donc généralement une mauvaise idée.
Marsh Posté le 04-03-2006 à 16:39:54
Le meiux serait que tu mettes tout ton projet dans un zip que l'on puisse l'analyser/tester nous meme parce que moi j'ai du mal a voir d'ou peut venir l'erreur de couleur!
Marsh Posté le 04-03-2006 à 16:40:32
++fab a écrit : Non.
|
D'accord. Et sinon, j'ai vérifié, et dans Forme / Groupe (issus de Objet), je n'ai aucun destructeur. Faut il en mettre un vide, ou c'est bon comme ça ?
Le prof nous avait dit qu'il était mieux d'en mettre un et de ne rien mettre dedans, genre " // rien à faire" pour montrer qu'on a compris.
Mais la, ds tous les cas, le destructeur de Objet sera appellé, non ?
Marsh Posté le 04-03-2006 à 16:40:57
breizhbugs a écrit : Le meiux serait que tu mettes tout ton projet dans un zip que l'on puisse l'analyser/tester nous meme parce que moi j'ai du mal a voir d'ou peut venir l'erreur de couleur! |
C'est parti, j'upload ^^
Marsh Posté le 04-03-2006 à 16:45:06
Voila. Je prends toutes les critiques, si ça peut m'améliorer la note.
http://isfates.no-ip.org/hfr/c++/
Ceci n'est que la structure de données, l'interface utilisateur qui l'utilisera est développée par mon binome.
C'est du Visual Studio 6
Le projet n'est pas finalisé à 100%, hein
Marsh Posté le 04-03-2006 à 16:49:50
ParadoX a écrit : D'accord. Et sinon, j'ai vérifié, et dans Forme / Groupe (issus de Objet), je n'ai aucun destructeur. Faut il en mettre un vide, ou c'est bon comme ça ? |
C'est bon comme ça.
Citation : Le prof nous avait dit qu'il était mieux d'en mettre un et de ne rien mettre dedans, genre " // rien à faire" pour montrer qu'on a compris. |
Dans l'ordre des choses : au début, tu n'as rien à libérer/détruire, et tu oublies de définir le destructeur (et par chance, ça n'entraine rien de grave), ensuite, tu prends conscience de l'existence des destructeurs, et tu définis un destructeur -- éventuellement avec un corp vide. Ensuite, tu apprends que s'il n'y a pas de destructeurs, il est alors implicitement déclaré inline, et défini avec un corp vide si utilisé.
Citation : Mais la, ds tous les cas, le destructeur de Objet sera appellé ? |
Oui.
Marsh Posté le 04-03-2006 à 18:20:00
ParadoX a écrit : Voila. Je prends toutes les critiques, si ça peut m'améliorer la note. |
Euh, dsl mais j'ai dit zip, pas rar!
(j'ai bien essayer un log mais il me dit header corrompu ou un truc dans le genre)
Marsh Posté le 04-03-2006 à 18:28:05
ReplyMarsh Posté le 04-03-2006 à 20:45:10
ParadoX a écrit : Voila |
Bon ca fait 1/2 heure que je regarde je comprends pas le probleme pour les couleurs...
Marsh Posté le 04-03-2006 à 20:47:49
Jsuis pas le seul alors
ça fait la meme chose que chez moi ?
Marsh Posté le 03-03-2006 à 01:43:06
Rebonjour,
Est-il possible de faire afficher du texte en console d'une certaine couleur ?
Je n'ai pas trouvé grand chose sur google, ce n'est peut-être pas si évident que ça à faire ?
---------------
Pier noir la mèr - La chanson par HFR Band - Topic TrueCrypt