La fonction gotoxy(int abs,int ord)

jimtruand Messages postés 18 Date d'inscription vendredi 15 mars 2002 Statut Membre Dernière intervention 27 octobre 2003 - 19 sept. 2002 à 23:51
bonmau Messages postés 13 Date d'inscription jeudi 22 août 2002 Statut Membre Dernière intervention 4 octobre 2004 - 26 sept. 2002 à 08:17
Salut !
Je cherche la fonction equivalente a gotoxy(arg1,arg2) de borlandc++ sous Visualc++ ?
C’est une fonction qui nous permet de placer le curseur ou on veut.

J’ai cherché sur le forum et j’ai trouvé la fonction
void pos(int x, int y) {
printf(« \033[%d;%dH », x, y); }
mais ça m’affiche<-[14 ;7]H pour pos(14,7)et ça ne deplace pas le curseur.

Merci d’avance
Jim

4 réponses

bonmau Messages postés 13 Date d'inscription jeudi 22 août 2002 Statut Membre Dernière intervention 4 octobre 2004
20 sept. 2002 à 11:37
Salut!
ça doit marcher,à condition de charger au préalable,dans le config.sys,le fichier ansi.sys que l'on trouve dans windows/command.
Rajouter la ligne:
device=c:\windows\command\ansi.sys
0
jimtruand Messages postés 18 Date d'inscription vendredi 15 mars 2002 Statut Membre Dernière intervention 27 octobre 2003
25 sept. 2002 à 17:42
Salut !

J’ai donc rajouté dans le fichier config.sys la ligne device=c:\windows\command\ansi.sys
dans la section [NOCD]
mais j’ai toujours les memes erreurs ex : ça m’affiche<-[5 ;5]H pour b.affiche() fonction dans laquelle on trouve pos(5,5) et ça ne deplace pas le curseur !
jim
PS:
voilà le code :
#include
#include <conio.h>
#include <stdio.h>

class point
{
int x,y;
public:
point(); // constructeur 1
point(int);// constructeur 2
point(int,int);// constructeur 3à
void affiche();
};

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

point::point() // constructeur 1
{
x=0;
y=0;
}

point::point(int abs) // constructeur 2
{
x=abs;
y=abs;
}

point::point(int abs,int ord) // constructeur 3
{
x = abs;
y = ord;
}

void point::affiche()
{
pos(x,y);
cout<<"Je suis en "<<x<<" "<<y<<"\n";
}

void main()
{
point a,b(5);
a.affiche();
b.affiche();
point c(3,12);
c.affiche();
}
0
bonmau Messages postés 13 Date d'inscription jeudi 22 août 2002 Statut Membre Dernière intervention 4 octobre 2004
25 sept. 2002 à 23:50
Bonsoir,
Je possède également vc++6 et mon o.s est windows98
J'ai tapé ton code,tout est correct: l'affichage et le déplacement du curseur!
Je n'ai pas compris à quoi correspondait cette section [NOCD]
Je rappelle la procédure:
cliquer sur exécuter,taper sysedit.exe et valider,
une série de fenêtres apparait.Choisir la fenêtre
config.sys et rajouter la ligne de commande:
device=c:\WINDOWS\COMMAND\Ansi.sys

@+ bonmau
0
bonmau Messages postés 13 Date d'inscription jeudi 22 août 2002 Statut Membre Dernière intervention 4 octobre 2004
26 sept. 2002 à 08:17
Bonjour,
Juste un petit complément à mon dernier message.
Lorsque plusieurs affichages sont demandés(c'est le cas de ton programme),il faut purger la mémoire tampon de cout par la fonction flush().
Ecrire:
void point::affiche()
{pos(x,y);
cout<<"Je suis en:"<<x<<","<<y<<"\n";
cout.flush();}
@+ bonmau
0
Rejoignez-nous