!!! Position du curseur !!! [Résolu]

Signaler
Messages postés
1403
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
11 janvier 2009
-
Messages postés
1403
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
11 janvier 2009
-
Bonjour à toutes et à tous !

Je cherche un moyen (en mode console sous Linux) de pouvoir placer le curseur là où je le voudrais.
J'ai essayé avec ce code déchappement :

void PosCur(int x, int y)
{
    printf("\033[%d;%dH", x, y);
}

mais visiblement ça ne fonctionne pas tout à fait !
En Win32 j'avais fait ceci qui fonctionne parfaitement bien :

void PosCur(int x, int y)
{
    COORD dwCursorPosition = {x, y};
    SetConsoleCursorPosition(STDOUT, dwCursorPosition);
}

Voyez-vous une erreur ou avez-vous une autre méthode à me soumettre ?

D'avance merci beaucoup pour votre aide.

YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
____________________________________________
[Site officiel de YoyoCut, découpe fichiers open source]

15 réponses

Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
12
Tu as inversé x et y
#define gotoxy(x, y) printf("\033[%d;%dH", y, x)
Cela fonctionne très bien.

C++ (@++)
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
12
#define setcsltitle(title) printf("\033]0;%s\007", title)

C++ (@++)
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
12
Ben, j'ai trouvé mais y'a un hic. C'est que la lib ncurses prend le controle du terminal donc les fonctions comme printf ne fonctionne plus. Elles sont remplacées par des fonctions similaires mais pour ncurses: printw. Menfin, si ça t'intéresse, voici mon code test complet:

#include <ncurses.h>

#define gotoxy(x,y) move(y-1,x-1)
#define wherexy(x,y) getyx(stdscr,y,x);y++;x++
#define printf printw

int main (int argc, char *argv[])
{
    int x, y;
   
    initscr();
   
    printf("Bonjour a tous");
    gotoxy(5,2);
    printf("Allo les amis\n");
   
    wherexy(x,y);
    printf("%d %d\n", x, y);
   
    refresh();
   
    return 0;
}

C++ (@++)
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
12
Tien, je t'ai fais une floppé de macros pour t'aider sous Linux:

// Paramètre pour setattrib et setattribforbuf
#define BOLD 1
#define UNDERLINE 4
#define FLASH 5
#define SURLINE 7

// Paramètre pour les fonctions demandant des couleurs
#define BLACK 0
#define RED 1
#define GREEN 2
#define YELLOW 3
#define BLUE 4
#define MAGENTA 5
#define CYAN 6
#define WHITE 7

// Change le titre de la console
#define setcsltitle(title) printf("\033]0;%s\007", title)
// Déplace le curseur de la console
#define gotoxy(x, y) printf("\033[%d;%dH", y, x)
// Éfface la console
#define clrscr() printf("\033[%d;%dH", 1, 1); printf("\033[2J")
// Change la couleur pour le texte voulu (buffer)
#define setcolorforbuf(front,back,buffer) printf("\033[3%d;4%dm%s\033[m", front, back, buffer)
// Change la couleur d'avant-plan pour tout le texte suivant
#define setfrontcolor(color) printf("\033[3%dm", color)
// Change la couleur d'arrière-plan pour tout le texte suivant
#define setbackcolor(color) printf("\033[4%dm", color)
// Change la couleur d'avant-plan et d'arrière-plan pour tout le texte suivant
#define setcolor(front,back) printf("\033[3%d;4%dm", front, back)
// Change les attributs pour les textes voulu (buffer)
#define setattribforbuf(attrib,buffer) printf("\033[%dm%s\033[m", attrib, buffer)
// Change les attributs pour tout le texte suivant
#define setattrib(attrib) printf("\033[%dm", attrib);
// Restaure les paramètre par défaut de la console (couleurs, attributs etc.)
#define defaults() printf("\033[m")

C++ (@++)
Messages postés
1403
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
11 janvier 2009
3
LOL ! Effectivement maintenant c'est sublime ! :p
Pendant que j'y suis, est-ce que par hasard tu connaitrais un moyen de récupérer la position courante du curseur et comment le masquer (le curseur) ?

Merci SAKingdom pour ton aide !

YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
____________________________________________
[Site officiel de YoyoCut, découpe fichiers open source]
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
12
Non, aucune idée. J'ai eu une piste, la librairie ncurses mais j'arrive pas à trouver comment faire. Je te tien au courant si je trouve.

C++ (@++)
Messages postés
1403
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
11 janvier 2009
3
Ok merci !
Mais te sens pas obligé surtout.

YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
____________________________________________
[Site officiel de YoyoCut, découpe fichiers open source]
Messages postés
1403
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
11 janvier 2009
3
Salut SAKingdom !

c'est vrai que c'est pas cool le coup des printf.
En tous cas merci pour l'info c'est toujours bon à savoir !
Pendant que je t'ai sous la main, et que visiblement tu t'y connais mieux que moi en linux, connaitrais-tu un équivalent de ShellExecute sous linux ?
En fait ça serait pour ouvrir un fichier quelqueconque (texte, mp3, vidéo, archive,...) avec son programme associé par défaut.

Merci pour le coup de main.

YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
____________________________________________
[Site officiel de YoyoCut, découpe fichiers open source]
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
12
Non je sais pas. Je cherche mais je ne trouve rien. Je me demande d'ailleur si c'est fesable sous Linux.

C++ (@++)
Messages postés
1403
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
11 janvier 2009
3
Il m'avait semblé avoir vu un wxExecute avec la librairie wxWidgets qui serait équivalent à ShellExecute.
Mais là bien sûr il faut ajouter cette librairie.
Merci d'avoir cherché en tous cas c'est sympa.

YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
____________________________________________
[Site officiel de YoyoCut, découpe fichiers open source]
Messages postés
1403
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
11 janvier 2009
3
Encore une chose au cas où tu connaitrais. (si j'embête à force dis le, ya aucun souci)
Est-ce possible de changer le titre de la console ? Si oui comment ?
Je cherche l'équivalent de SetConsoleTitle en fait.

YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
____________________________________________
[Site officiel de YoyoCut, découpe fichiers open source]
Messages postés
1403
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
11 janvier 2009
3
Pas encore testé, mais merci beaucoup !!!
Mais où trouves-tu toutes ces infos ?
Tu as des liens ?
Moi j'arrive pas à mettre la main sur qq chose qui me convienne.

YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
____________________________________________
[Site officiel de YoyoCut, découpe fichiers open source]
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
12
Je recherche sur google tout simplement. Suffis d'avoir les bons mots clées.
Exemple, pour ton problème précédent, j'ai tapé:
SetConsoleTitle Linux
et 4 ou 5 résultats plus bas, j'ai trouvé (c'était dans une source de cppfrance je crois)

C++ (@++)
Messages postés
1403
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
11 janvier 2009
3
LOL !
Là je dois dire que ça me met un froid.
Je dois probablement être manchot.
Ah non je sais, j'avais oublié le parachute ! lol

YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
____________________________________________
Messages postés
1403
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
11 janvier 2009
3
Ah super sympa ! Et très pratique en plus !
Merci de te donner autant de mal.

YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
____________________________________________
[Site officiel de YoyoCut, découpe fichiers open source]