begin process at 2012 05 27 15:58:16
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Chaîne de caractères

 > EFFECTUER DES SORTIES EN COULEUR, DÉPLACER LE CURSEUR ETC. AVEC PRINTF ET LE PILOTE ANSI.SYS [TOUS COMPILATEURS]

EFFECTUER DES SORTIES EN COULEUR, DÉPLACER LE CURSEUR ETC. AVEC PRINTF ET LE PILOTE ANSI.SYS [TOUS COMPILATEURS]


 Information sur la source

Note :
7,25 / 10 - par 4 personnes
7,25 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Chaîne de caractères Niveau :Débutant Date de création :26/01/2002 Date de mise à jour :01/02/2002 19:52:48 Vu :11 928

Auteur : bouba

Ecrire un message privé
Site perso
Commentaire sur cette source (7)
Ajouter un commentaire et/ou une note

 Description

La fonction printf permet beaucoup de chose mais ne permet pas par exemple d'afficher du texte en couleur ou d'effacer l'écran. Mais il existe certainement un pilote nommé ANSI.SYS dans votre ordinateur qui peu permettre d'effectuer de telles manipulations. D'abord, avant de s'en servir il faut l'installer, pour cela, inscrivez la ligne suivante dans le fichier config.sys.
DEVICE=C:\dos\ansi.sys
Voici les différentes possibilités que vous avez avec ce pilote.

Afficher des couleurs :
[30m : lettre noir
[31m : lettre rouge
[32m : lettre verte
[33m : lettre orange
[34m : lettre bleu
[35m: lettre magenta
[36m: lettre cyan
[37m: lettre blanc
[40m: fond noir
[41m: fond rouge
[42m: fond vert
[43m: fond orange
[44m: fond bleu
[45m: fond magenta
[46m: fond cyan
[47m: fond blanc

Positionner le curseur :
[x ;yM : Positionne le curseur au coordonnées x,y
[xA : Déplace le curseur de x lignes vers le haut
[xB : Déplace le curseur de x lignes vers le bas
[xC : Déplace le curseur de x colonnes vers la droite
[xD : Déplace le curseur de x colonnes vers la gauche
[s : Enregistre la position du curseur
[u : Place le curseur à la position enregistrée

Effacer l'écran : [2j

Installer un mode d'affichage :
[0h : 40*25 Monochrome
[1h : 40*25 Couleur (texte)
[2h : 80*25 Monochrome
[3h : 80*25 Couleur (texte)
[4h : 320*200 Couleur (graphique)
[5h : 320*200 4 Couleurs (graphique)
[6h : 640*200 Monochrome
[7h : 640*200 Couleur (texte)
[13h : 320*200 Couleur (graphique)
[14h : 640*200 16 Couleurs (graphique)
[15h : 640*350 Monochrome
[16h : 640*350 16 Couleurs (graphique)
[17h : 640*480 16 Couleurs (graphique)
[19h : 320*200 256 Couleurs (graphique)

Effacer l'écran : [2J

Attention il faut mettre le caractère Esc ou \033 avant tous ces codes.
Voyez le code source pour voir comment cela marche.
      

Source

  • #include<stdio.h>
  • #include<conio.h>
  • int main()
  • {
  • printf("\033[16h");
  • printf("\033[32mBonjour \033[3B"); //Affiche bonjour en vert et saute 3 lignes
  • printf("\033[45;32mBonjour"); //Affiche Bonjour en vert sur fond magenta
  • getch(); //Attend la saisie d'une touche
  • printf("\033[2J"); //Remplie l'écran avec la couleur de fond définie précedemment
  • getch();
  • return 0;
  • }
#include<stdio.h>
#include<conio.h>

int main()
{
      printf("\033[16h");
      printf("\033[32mBonjour \033[3B"); //Affiche bonjour en vert et saute 3 lignes
      printf("\033[45;32mBonjour");  //Affiche Bonjour en vert sur fond magenta
      getch(); //Attend la saisie d'une touche
      printf("\033[2J"); //Remplie l'écran avec la couleur de fond définie précedemment
      getch();
      return 0;
}       

 Conclusion

Le code explique bien le fonctionnement.
Si vous avez gcc sans djgpp vous ne possédez pas conio.h, remplacez alors la fonction getch() par ceci:
int lettre;

if((lettre = getchar()) == 23)
              printf("\033[2J");

Si vous avez un problème écrivez moi.      


 Sources du même auteur

Source avec Zip Source avec une capture EDITEUR DE FICHIERS C++ (LINUX, WINDOWS, MAC...)
CRÉER UNE FENÊTRE AVEC LA XLIB (TOUT OS À BASE D'UNIX (LINUX...
FONCTIONS KBHIT() ET GETCH() SOUS LINUX (DOIT MARCHER AVEC T...
Source avec Zip Source avec une capture EDITEUR DE TEXTE (COMME LE NOTEPAD!!!) [COMPILATEUR BCC55](M...
Source avec une capture EXEMPLE D'UN CUBE PLEIN QUI TOURNE EN OPENGL (UTILISE GLUT)

 Sources de la même categorie

CALCUL DE CLEF RIB par Renfield
Source avec Zip [C] WD_STRING V2.2 par cyberripper
Source avec Zip LES STRING EN C, AFFECTATION, CONCATÉNATION, SPLIT, ... par appranting
Source avec Zip [C] WD_STRING V1.9 par cyberripper
Source avec Zip LIBRAIRIE LANGUAGES par astro53

Commentaires et avis

Commentaire de Jo le 26/01/2002 17:34:16

Hum, hum, dejas tu dit Tous compilateur je t'arrete tosu de suite conio.h n'existe pas en ANSI et GCC est un compilateur ANSI et ne contient donc pas conio.h, donc ce code n'est apsporu tout compilateur. Donc avant d'affirmer quelques chose d'aussi "grotesque" il faudrait se renseigner surtout que ca fait mainte et mainte fois que je le repete en ANSI conio.h n'existe pas.

Donc a tous les lecteurs de cette source, cette soruce n'est PAS pour tous les compilateur.

Commentaire de bouba le 21/02/2002 17:21:49

si si, tous compilateurs, pour ceux qui n'ont pas conio.h, je l'ai inclue juste pour utiliser la fonction getch(). Si vous ne l'avez pas remplacez la par son équivalente avec votre compilateur. La méthode (utilisation du pilote ansi) marche normalement avec tous les compilateurs.

Commentaire de GoldenEye le 07/05/2002 16:36:47

C quand même bien pratique...
Merci

Commentaire de dinedou le 16/02/2004 11:47:25

je developpe une appli sous une fenetre dos, sous XP et NT.

j'ai des soucis avec les codes ESCAPES,

même avec ce code, cela ne fonctionne pas !!

voici ce qu'affiche se code :

&#8592;[16h&#8592;[32mBonjour &#8592;[3B&#8592;[45;32mBonjour

le caractere Escape n'est pas reconnu, le fichier Ansi.sys est bien chargé à l'aide de config.nt, enfin je le pense !!
y a-t-il moyen de vérifier ?
y a-t-il moyen de controler la valeur de ESCAPE utilisé par la fenetre dos de mon pc ?

Merci d'avance pour la reponse, c'est urgent...Merci

Commentaire de dinedou le 16/02/2004 16:59:13

en fait, je viens de m'apercevoir (en ajoutant echoconfig dans le config.nt) que ansi.sys n'est pas chargé, il y a une erreur à la ligne
device=c:\winnt\system32\ansi.sys alors que le fichier ansi.sys se trouve bien à cet endroit !!!

avez vous une solution ?

Commentaire de magic_Nono le 09/09/2004 18:42:23

perso, je fais comme pr utiliser l'écran: tt avec le devicecontexct (CDC)

dc pr les anti MFC

on fait tt avec
++

Commentaire de belhabra le 24/11/2007 18:56:43

merci

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,326 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales