Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 03/02/2025, à 12:56

nasier

en C, un alias dans printf

Bonjour
J'ai une fonction printf qui m'affiche le resultat d'un calcul sur la console.
Si je veux amélioirer la visibilité et par exemple faire clignoter le résultat écrit en jaune sur fond bleu, je dois, dans le corps du printf écrire des commandes escape particulières, une pour définir un fond, bleu, une autre pour écrire en jaune sur fond bleu, une troisième  pour faire clignoter le tout

Ca donne quelque chose comme
printf("\033[44m Le resultat est \033[1;33m\033[5m%1.6f\n", res);
( bien sur j'ai défini plus haut res comme un float ou j'affiche1 chiffre avant la virgule et 6 apres )

Ma question est...a la place de ces commandes escape \033, y a t il un moyen en C de définir une sorte d'alias qui dirait par exemple
fb =\033[4m    // fond bleu
jsfb = \033[1;33m  // jaune sur fond bleu
cli = \033[5m  //clignote

merci d'avance pour tout tuyau

Hors ligne

#2 Le 03/02/2025, à 13:21

hotnuma

Re : en C, un alias dans printf

Avec des macros genre comme ça :

#include <stdio.h>
#define BLUE "\033[44m"

int main()
{
    printf(BLUE "blablie\n");
    return 0;
}

Hors ligne

#3 Le 03/02/2025, à 13:23

nasier

Re : en C, un alias dans printf

cool...j'essaye !!!
et merci

Hors ligne

#4 Le 03/02/2025, à 13:38

hotnuma

Re : en C, un alias dans printf

Un truc comme ça par exemple :

#include <stdio.h>
#define BLUE "\033[44m"
#define END "\033[m"

int main()
{
    //printf("\033[44mtest\033[ming\n");
    printf(BLUE "test" END "ing\n");
    return 0;
}

Hors ligne

#5 Le 03/02/2025, à 14:13

nasier

Re : en C, un alias dans printf

marche pas...
peut etre ne peut on pas mettre une macro dans un printf comme je voulais le faire !!!

Hors ligne

#6 Le 03/02/2025, à 14:24

hotnuma

Re : en C, un alias dans printf

Ca a l'air de marcher :

#include <stdio.h>
#define FB "\033[4m"
#define JSFB "\033[1;33m"
#define CLI "\033[5m"
#define FIN "\033[m"
#define LF "\n"

int main()
{
    float res = 0.666;
    
    //printf("\033[44m Le resultat est \033[1;33m\033[5m%1.6f\n", res);
    printf(FB " Le resultat est " JSFB CLI "%1.6f" FIN LF, res);

    return 0;
}

Hors ligne

#7 Le 03/02/2025, à 15:06

nasier

Re : en C, un alias dans printf

Ca marche...J'ai corrgé mes erreurs
Merci encore pour l'exemple

Hors ligne