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

yoyo269 1403 Messages postés lundi 23 février 2004Date d'inscription 11 janvier 2009 Dernière intervention - 27 janv. 2007 à 20:47 - Dernière réponse : yoyo269 1403 Messages postés lundi 23 février 2004Date d'inscription 11 janvier 2009 Dernière intervention
- 29 janv. 2007 à 09:26
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]
Afficher la suite 

15 réponses

Répondre au sujet
SAKingdom 3213 Messages postés lundi 7 novembre 2005Date d'inscription 16 février 2009 Dernière intervention - 27 janv. 2007 à 22:46
+3
Utile
Tu as inversé x et y
#define gotoxy(x, y) printf("\033[%d;%dH", y, x)
Cela fonctionne très bien.

C++ (@++)
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de SAKingdom
SAKingdom 3213 Messages postés lundi 7 novembre 2005Date d'inscription 16 février 2009 Dernière intervention - 28 janv. 2007 à 22:30
+3
Utile
#define setcsltitle(title) printf("\033]0;%s\007", title)

C++ (@++)
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de SAKingdom
SAKingdom 3213 Messages postés lundi 7 novembre 2005Date d'inscription 16 février 2009 Dernière intervention - 28 janv. 2007 à 23:49
+3
Utile
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++ (@++)
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de SAKingdom
yoyo269 1403 Messages postés lundi 23 février 2004Date d'inscription 11 janvier 2009 Dernière intervention - 27 janv. 2007 à 23:34
0
Utile
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]
Commenter la réponse de yoyo269
SAKingdom 3213 Messages postés lundi 7 novembre 2005Date d'inscription 16 février 2009 Dernière intervention - 28 janv. 2007 à 00:02
0
Utile
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++ (@++)
Commenter la réponse de SAKingdom
yoyo269 1403 Messages postés lundi 23 février 2004Date d'inscription 11 janvier 2009 Dernière intervention - 28 janv. 2007 à 00:13
0
Utile
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]
Commenter la réponse de yoyo269
SAKingdom 3213 Messages postés lundi 7 novembre 2005Date d'inscription 16 février 2009 Dernière intervention - 28 janv. 2007 à 01:15
0
Utile
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++ (@++)
Commenter la réponse de SAKingdom
yoyo269 1403 Messages postés lundi 23 février 2004Date d'inscription 11 janvier 2009 Dernière intervention - 28 janv. 2007 à 15:02
0
Utile
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]
Commenter la réponse de yoyo269
SAKingdom 3213 Messages postés lundi 7 novembre 2005Date d'inscription 16 février 2009 Dernière intervention - 28 janv. 2007 à 15:56
0
Utile
Non je sais pas. Je cherche mais je ne trouve rien. Je me demande d'ailleur si c'est fesable sous Linux.

C++ (@++)
Commenter la réponse de SAKingdom
yoyo269 1403 Messages postés lundi 23 février 2004Date d'inscription 11 janvier 2009 Dernière intervention - 28 janv. 2007 à 16:13
0
Utile
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]
Commenter la réponse de yoyo269
yoyo269 1403 Messages postés lundi 23 février 2004Date d'inscription 11 janvier 2009 Dernière intervention - 28 janv. 2007 à 21:35
0
Utile
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]
Commenter la réponse de yoyo269
yoyo269 1403 Messages postés lundi 23 février 2004Date d'inscription 11 janvier 2009 Dernière intervention - 28 janv. 2007 à 22:33
0
Utile
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]
Commenter la réponse de yoyo269
SAKingdom 3213 Messages postés lundi 7 novembre 2005Date d'inscription 16 février 2009 Dernière intervention - 28 janv. 2007 à 22:38
0
Utile
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++ (@++)
Commenter la réponse de SAKingdom
yoyo269 1403 Messages postés lundi 23 février 2004Date d'inscription 11 janvier 2009 Dernière intervention - 28 janv. 2007 à 22:41
0
Utile
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 !"
____________________________________________
Commenter la réponse de yoyo269
yoyo269 1403 Messages postés lundi 23 février 2004Date d'inscription 11 janvier 2009 Dernière intervention - 29 janv. 2007 à 09:26
0
Utile
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]
Commenter la réponse de yoyo269

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.