Interraction avec la console

Signaler
Messages postés
212
Date d'inscription
dimanche 3 avril 2005
Statut
Membre
Dernière intervention
28 mai 2011
-
Messages postés
212
Date d'inscription
dimanche 3 avril 2005
Statut
Membre
Dernière intervention
28 mai 2011
-
Salut

J'aimerai savoir comment en C sous linux on peut faire les choses suivantes:

-placer le curseur a une position donnée dans la console (comme gotoxy sous windows)

-changer la couleur des caracters et du fond

-connaitre la taille de la consolle

-detecter la pression d'une touche


En fait j'essay de créer un logiciel unpeu comme vim(j'ai essayé de le decortiquer mais j'ai pas trouvé).

Merci

19 réponses

Messages postés
2671
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
2
Pour la pression d'une touche c'est idem que son Windows tant que tu restes en standard (kbhit());

Shell
Messages postés
212
Date d'inscription
dimanche 3 avril 2005
Statut
Membre
Dernière intervention
28 mai 2011
2
merci mais ca ne resoud pas tout le probleme. et puis si quelqu'un connai une methode plus efficace ca m'aiderai vraiment.
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
Je crois que la librairie ncurses sert à ca

_____________________________________
Un éditeur de ressources gratuit pour Windows
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
36
Salut :

Ceci est lien vers une source écrite en Java utilisant JNI (Programmation C sous Unix)
(tu va trouver un code en C : gotoxy, couleur, ...)
Répondant à toutes vos question :

http://www.javafr.com/codes/ECRIRE-COULEURS-SUR-CONSOLE-JNI_39674.aspx
Messages postés
5360
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
25 janvier 2021
108
Salut,

au plus simple sous nunux tu dois utiliser les codes escapes pour les interactions avec la console , ils sont définis par le système (voir http://en.wikipedia.org/wiki/ANSI_escape_code) et non strictement aucune dépendance avec ncurses.....

pour faire des petit teste en C/C++ ecris les directement dans un printf/cout ou encore cerr
maintenant si tu veux faire des petits teste dans un terminale(ce qui est plus simple en terme de teste) utilise echo avec l'option '-e' exemple

esc.sh
#!/bin/bash

echo -e "\x1B[${1};${2}m$3"
#restoration de l'affichage pour les textes suivants
echo -e "\x1B[0m"

ensuite tu teste genre :
sh esc.sh 0 33 "petit texte en jaune
sh esc.sh 1 33 "petit texte en jaune gras

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
Messages postés
212
Date d'inscription
dimanche 3 avril 2005
Statut
Membre
Dernière intervention
28 mai 2011
2
merci pour toutes les reponces. Mais j'ai toujours pas compris comment connaitre la tail de la console.
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
36
Salut :

La taille de la console pourquoi faire?
C'est connu 80 caractères (standard/WINDOWS).
Si tu veux prends le soi pour vérifie ça.
Messages postés
212
Date d'inscription
dimanche 3 avril 2005
Statut
Membre
Dernière intervention
28 mai 2011
2
ouai t'as raison mais je me souvien bien d'avoir precisé que je veux
créer un logiciel pour linux. Et si je ne me trempe pas la tail de
console linux peut etre tres variable.

<hr size="2" width="100%" />3Dmania
Messages postés
5360
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
25 janvier 2021
108
Salut,

sous linux mise à part avec ncurses je ne vois pas trop comment recupe la taille de la console sachant que tu peux etre avec ou sans serveur X.....
un conseil pour ce qui est des gotoxy, couleurs (fonds et textes), clear screen, etc...., et pour la dim de la console utilise ncurses (à condition que ton user soit accros aux manipulation console.... vu que sur les distribs linux il n'y a pas forcement ncurses d'installé.....

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
Messages postés
5360
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
25 janvier 2021
108
j'ai zapé un bout dsl je refais :

sous linux mise à part avec ncurses je ne vois pas trop comment recupe
la taille de la console sachant que tu peux etre avec ou sans serveur
X.....
un conseil pour ce qui est des gotoxy, couleurs (fonds et
textes), clear screen, etc.... utilise les codes escapes, et pour la dim de la console utilise
ncurses (à condition que ton user soit accros aux manipulation
console.... vu que sur les distribs linux il n'y a pas forcement
ncurses d'installé.....

(en rouge ce que j'ai zapé )

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
Messages postés
212
Date d'inscription
dimanche 3 avril 2005
Statut
Membre
Dernière intervention
28 mai 2011
2
ok pas grave. En fait je le trouve ou ce ncurses?

<hr size="2" width="100%" />Trafic web gratuit!!!
Messages postés
5360
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
25 janvier 2021
108
Salut,

bah faut l'install..... tu es sous quelle distrib?

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
Messages postés
212
Date d'inscription
dimanche 3 avril 2005
Statut
Membre
Dernière intervention
28 mai 2011
2
j'ai ubuntu. Est ce que ncurses marche sous Solaris car a l'ecole d'ingenieurs on a des stations sun partout?

<hr size="2" width="100%" />Trafic web gratuit!!!
Messages postés
5360
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
25 janvier 2021
108
Salut,

ncurses est une lib unix donc sacahant que solaris est un systeme unix cela répond t'il à ta question?

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
Messages postés
212
Date d'inscription
dimanche 3 avril 2005
Statut
Membre
Dernière intervention
28 mai 2011
2
ouai. Mais bon apres quelques reflexions je suis arrivé a la conclusion
que je ne pourrai pas l'installer sur mon compte sun car c'est interdit
par le reglement. Si non est ce que tu sais comment ils l'ont fais dans
vim pour connaitre la taille de la console? Je pence pas qu'ils ont
utilisé les librairies.

<hr size="2" width="100%" />Trafic web gratuit!!!
Messages postés
5360
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
25 janvier 2021
108
Salut,

methode super simple dl les sources de vim et epluche le truc tu verras tu y trouveras les solutions à ton problème voir plus en te bindant à la lib ctags (pour la colorisation syntaxique et plus )

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
Messages postés
212
Date d'inscription
dimanche 3 avril 2005
Statut
Membre
Dernière intervention
28 mai 2011
2
bon ok je vais reessayer :)

<hr size="2" width="100%" />Trafic web gratuit!!!
Messages postés
5360
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
25 janvier 2021
108
Salut,

normalement si le kernel de la solaris est fait maison il y a ncurses, toute fois pour faire un petit teste vite fais voici un piti script tout simple, et si tout s'affiche correctement c'est good sinon c'est pas bon :

essai.sh:

#!/bin/bash

#result est le fichier contenant la selection
RESULT=result

#ici $HOME c'est le rep selectionné par défaut
dialog --title "Sélection d'un fichier" --ok-label "Valider" --cancel-label "Annuler" --fselect "$HOME/" 8 60 2> $RESULT

utilisation :
sh essai.sh

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
Messages postés
212
Date d'inscription
dimanche 3 avril 2005
Statut
Membre
Dernière intervention
28 mai 2011
2
ok merci

<hr size="2" width="100%" />Trafic web gratuit!!!