funcion gotoxy

Iniciado por Beginner Web, 21 Octubre 2018, 20:35 PM

0 Miembros y 1 Visitante están viendo este tema.

Beginner Web

Hola miren estoy buscando la manera de mostrar el contenido de un arbol binario de busqueda de forma muy grafica por pantalla es decir de esta manera

               RAIZ
      12                  33
  6      15          51
      14   19

Tengo estos metodos pero a la hora de imprimir por pantalla se me superpone el mensaje
"Presione una tecla para continuar...." y no me gusta


Código (cpp) [Seleccionar]
void mostrar(pnodo arbol, int Y)
{
if(arbol!=NULL){
X+=5;
mostrar(arbol->izq,Y+2);
gotoxy(10+X-Y,15+Y);
cout<<arbol->dato<<endl;
mostrar(arbol->der,Y+2);
}
}

void gotoxy(int x, int y)
{
HANDLE hcon;
hcon=GetStdHandle(STD_OUTPUT_HANDLE);

COORD pos;
pos.X=x;
pos.Y=y;
SetConsoleCursorPosition(hcon,pos);
}

Desde ya muchas gracias  ;-)
7w7

MAFUS

Antes de que aparezca el mensaje mueve el cursor de la pantalla donde quieras. No sé si va a funcionar. Inténtalo.

Beginner Web

Si pero no me lo muestra en un lugar fijo :(
7w7

huchoko

#3
Bueno, en tu código no hay ninguna llamada a system("pause")
Estas compilando desde el IDE? Si es así, por eso te aparece el mensaje de Presione un tecla...
Pero si lo ejecutas desde la terminal no aparecerá.
Y una recomendación:
Código (cpp) [Seleccionar]

if(arbol == NULL){
return;
}
X += 5;
mostrar(arbol-> izq, Y + 2);
gotoxy(10 + X - Y, 15 + Y);
cout << arbol -> dato << endl;
mostrar(arbol -> der, Y + 2);

No aglutines los operadores con lo demás, hace que el código sea mas difícil de leer, y se ve feo...
Saludos
y respondiendo eso de que el mensaje ese no se queda en un lugar fijo es por que el mensaje se imprime en el ultimo lugar dónde posicionaste el cursor con gotoxy