IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

comment colorier un printf?


Sujet :

C

  1. #1
    Membre averti
    Étudiant
    Inscrit en
    Novembre 2009
    Messages
    45
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2009
    Messages : 45
    Par défaut comment colorier un printf?
    Bonjour,

    comment colorier un printf?

    merci

  2. #2
    Membre éclairé Avatar de LinuxUser
    Inscrit en
    Avril 2007
    Messages
    857
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 857
    Par défaut
    Il semblerait que se soit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    033[couleur_police;couleur_fondm
    Exemples :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    printf ("\033[32;40m"); 
    printf ("\033[0m");
    Le "m" sert à fermer la sequence.

  3. #3
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    printf ne fait qu'envoyer du texte sur le flux de sortie standard, elle (ni aucune fonction de la bibliothèque standard) ne permet pas de contrôler le périphérique qui se trouve derrière le flux à moins que le périphérique supporte des séquences spéciales (par exemple les séquences d'échappement ANSI) qu'on peut lui envoyer sous forme de texte. Normalement, tu dois appeler les fonctions de ton système mais il y a aussi des bibliothèques portables qui encapsulent ces fonctions, par exemple PDCurses.

    Juste par curiosité, quel est ton système (DOS ? Windows ? Linux ? MacOS X ?) ?

  4. #4
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    Citation Envoyé par juve1897 Voir le message
    Il semblerait que se soit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    033[couleur_police;couleur_fondm
    Exemples :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    printf ("\033[32;40m"); 
    printf ("\033[0m");
    Le "m" sert à fermer la sequence.
    Ca ne marche que si le terminal supporte les séquences ANSI VT100/VT52, ce qui est le cas sous DOS et Linux mais ce n'est pas portable.

  5. #5
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 119
    Billets dans le blog
    148
    Par défaut
    J'ai un fichier pseudo plateforme indépendant pour la coloration des messages ( printf ). Mais j'utilise une feinte, celle d'une compilation conditionnel ( ou autrement appelée #ifdef blocs ) pour savoir si je suis sous windows ou unix ... comme ça je change la méthode de coloration. Jusqu'a présente ça marche.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  6. #6
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    Citation Envoyé par LittleWhite Voir le message
    J'ai un fichier pseudo plateforme indépendant pour la coloration des messages ( printf ). Mais j'utilise une feinte, celle d'une compilation conditionnel ( ou autrement appelée #ifdef blocs ) pour savoir si je suis sous windows ou unix ... comme ça je change la méthode de coloration. Jusqu'a présente ça marche.
    C'est déjà pas mal mais d'habitude on ne fournit qu'un seul fichier d'en-tête donc on utilise les mêmes fonctions pour n'importe quel système. C'est le fichier avec lequel il faut se lier (le .lib sous Windows) qu'on change chaque fois qu'on change de système et bien entendu, les sources des ces différents libs sont plateforme-dépendantes. Mais c'est là justement l'intérêt de la notion d'interface : on définit l'interface (le prototype) d'une fonction, qui peut souvent être plateforme-indépendante, et on cache l'implémentation, qui peut être plateforme-dépendante.

  7. #7
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 119
    Billets dans le blog
    148
    Par défaut
    Je ne sais pas si je me suis un peu mal expliqué, ou si je vous ai pas compris. Mais quelque soit le système j'ai les mêmes fonctions (ainsi que les même codes de couleurs) ( point de vue développeur). L'implémentation derrière change, selon les bloc de #ifdef.
    Donc l'utilisateur ( enfin le développeur qui utilise mon truc) voit toujours les mêmes fonctions et les même noms de macro, par contre, il ne voit pas que le code qui permet de faire ce qu'il veut a changer .
    C'est ce que j'appelle une interface
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  8. #8
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    Oui j'ai compris. Mais ce que je voulais dire c'est plutôt que de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // header.h
    int f(void);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    // source.c
    int f(void)
    {
        #if TARGET == 1
        return 1;
        #elif TARGET == 2
        return 2;
        #endif
    }
    Mieux vaut faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // header.h (commun a source-target1.c et source-target2.c)
    int f(void);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    // source-target1.c
    int f(void)
    {
        return 1;
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    // source-target2.c
    int f(void)
    {
        return 2;
    }
    C'est la manière habituelle de faire en C.

  9. #9
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 119
    Billets dans le blog
    148
    Par défaut
    Je préfère aussi la deuxième méthode.
    Mais le choix est donc fait par le Makefile ? ( le choix du fichier .c )
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  10. #10
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    Bien entendu. Et la cible est donnée en argument de la commande make. Par exemple make target1.

Discussions similaires

  1. Comment colorier une portion de texte dans un TSynMemo ?
    Par Henri-gp dans le forum Composants VCL
    Réponses: 0
    Dernier message: 29/10/2007, 15h14
  2. Comment colorier un arc avec gtk
    Par Redmaroc dans le forum GTK+ avec C & C++
    Réponses: 1
    Dernier message: 23/04/2007, 10h32
  3. Comment colorier le texte d'un contrôle ou son fond?
    Par N3odyme dans le forum Windows
    Réponses: 2
    Dernier message: 15/10/2006, 16h50
  4. Réponses: 7
    Dernier message: 15/05/2006, 16h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo