La console en C
youplalayoupi
-
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
j'ai installé code::blocks sous ubuntu et quand je lance un programme en console, j'aimerais pouvoir modifier les propriétés de celle-ci. Un peu comme sous celle de Windows où on peut changer les couleurs / taille de la police et surtout la taille de la mémoire tampom. Malheuresement je ne peux que agrandir/réduire/ect la fenêtre de la console sans pouvoir accerder a ses propriétés quand je suis sous linux avec code::blocks.
Voilà, donc toute aide est la bienvenue ! Merci !
j'ai installé code::blocks sous ubuntu et quand je lance un programme en console, j'aimerais pouvoir modifier les propriétés de celle-ci. Un peu comme sous celle de Windows où on peut changer les couleurs / taille de la police et surtout la taille de la mémoire tampom. Malheuresement je ne peux que agrandir/réduire/ect la fenêtre de la console sans pouvoir accerder a ses propriétés quand je suis sous linux avec code::blocks.
Voilà, donc toute aide est la bienvenue ! Merci !
A voir également:
- La console en C
- Test console steam deck - Guide
- Console action - Accueil - Jeu vidéo
- Console mac - Guide
- Consommation console de jeux - Accueil - Guide jeu vidéo
- Realtek audio console ne prend pas en charge cette machine ✓ - Forum Audio
3 réponses
J'ai bien un début de solution, mais ça ne marchera que sur Linux (et encore, pas tous)
Il s'agit d'utiliser des instructions en langage bash, via l'appel de la fonction system
On peut faire ainsi quelques changements de style (mais très peu)
Pour changer la couleur (en rouge par exemple) c'est quelque chose comme ça en bash :
Il s'agit d'utiliser des instructions en langage bash, via l'appel de la fonction system
On peut faire ainsi quelques changements de style (mais très peu)
Pour changer la couleur (en rouge par exemple) c'est quelque chose comme ça en bash :
echo -en "\033 [31m"En C maintenant, ça doit donner à peu près ça :
system("echo -en \"\\033 [31m\"");Je n'ai pas vérifié, parce que j'ai pas Linux sous la main mais je l'ai déjà fait...
Salut,
Pour les couleurs en C : https://openclassrooms.com/fr/courses
Je te recommande plutôt la solution avec l'API.
Pour changer les propriétés comme la taille : https://docs.microsoft.com/en-us/windows/console/setconsolescreenbuffersize?redirectedfrom=MSDN
Cdlt
Pour les couleurs en C : https://openclassrooms.com/fr/courses
Je te recommande plutôt la solution avec l'API.
Pour changer les propriétés comme la taille : https://docs.microsoft.com/en-us/windows/console/setconsolescreenbuffersize?redirectedfrom=MSDN
Cdlt
J'ai retrouvé Ubuntu et j'ai fait une petite fonction qui peux aider pour la mise en forme du terminal.
Cependant je tiens à rappeler que ma méthode marche sous Ubuntu mais qu'elle pourrait ne pas fonctionner avec d'autres distributions Linux (et pour Windows on ira directement voir la réponse de fiddy)
Cependant je tiens à rappeler que ma méthode marche sous Ubuntu mais qu'elle pourrait ne pas fonctionner avec d'autres distributions Linux (et pour Windows on ira directement voir la réponse de fiddy)
#include <stdio.h> #include <string.h> void Style(char * commande) { char part1[100]="echo -n \"\\033["; char part2[10]="m\""; strcat(part1,commande); strcat(part1,part2); system(part1); }Je n'ai pas trouvé de liste complète des commandes possibles, cependant voici celles que je connais :
Style("0"); // style par défaut Style("1"); // en gras Style("2"); // inactif Style("4"); // souligner Style("7"); // style du curseur Style("8"); // style mot de passe (invisible) Style("9"); // barré Style("3N"); // couleur d'avant plan * Style("4N"); // couleur d'arrière plan * * N doit être remplacer par un chiffre 0 : noir 1 : rouge 2 : vert 3 : jaune 4 : bleu 5 : magenta 6 : cyan 7 : blanc
Est-ce qu'on peut toujours remplacer system(echo "..."); par printf("..."); ?
En terme de fonctionnalité oui. Mais c'est déconseillé pour deux raisons :
1/ C'est beaucoup plus gourmand en mémoire de par l'utilisation de la fonction system
2/ Tu perds largement en portabilité.
Par contre, avec le printf, faut faire attention à vider le buffer stdout soit de manière explicitement soit c'est fait automatiquement.
Cdlt
En terme de fonctionnalité oui. Mais c'est déconseillé pour deux raisons :
1/ C'est beaucoup plus gourmand en mémoire de par l'utilisation de la fonction system
2/ Tu perds largement en portabilité.
Par contre, avec le printf, faut faire attention à vider le buffer stdout soit de manière explicitement soit c'est fait automatiquement.
Cdlt