Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: GuilleSPA en 17 Diciembre 2005, 01:14 am



Título: funcion gotoxy ( x , x )
Publicado por: GuilleSPA en 17 Diciembre 2005, 01:14 am
weno pos no m funciona la funcion  gotoxy ( x , x );
con q biblioteca se abre?   xq m da error ¿? el codigo es este

#include<stdio.h>
#include<conio.h>

int main(){
 
    printf("uno\n");
    printf("dos\n");
    printf("tres\n");
   
    getch();
     gotoxy( 20, 10 );

    return 0;
}


Título: Re: funcion gotoxy ( x , x )
Publicado por: sch3m4 en 17 Diciembre 2005, 02:29 am
Código:
int gotoxy(SHORT x, SHORT y)
{
   COORD coord;
   HANDLE h_stdout;
   
   coord.X = x;
   coord.Y = y;
   
   if ((h_stdout = GetStdHandle(STD_OUTPUT_HANDLE)) == INVALID_HANDLE_VALUE)
      return 0;
   
   if (SetConsoleCursorPosition(h_stdout, coord) == 0)
      return 0;

   return 1;
}

 ;)


Título: Re: funcion gotoxy ( x , x )
Publicado por: Juan_Perez en 17 Diciembre 2005, 02:47 am
La función gotoxy (int columna, int fila) es una función declarada en el encabezado <conio.h>, la cual viene en los compiladores de la línea de Turbo C (y también Borland C++) de la compañía Borland. Si usas otro compilador debes de buscar una función equivalente. En el compilador Dev C++ hay una emulación de las funciones declaradas en <conio.h>, pero antes tienes que bajarte esta librería y compilarla para poder usarla. Windows ofrece un conjunto de funciones para manejar la consola, entre las cuales está una equivalente a gotoxy, pero para poder usar estas funciones tienes que verificar si tu compilador puede usarlas. Esto lo puedes ver buscando el archivo de encabezado windows.h en el directorio include de tu compilador. La función es SetConsoleCursorPosition (HANDLE hConsoleOutput, COORD coord), pero su uso no es inmediato como la función gotoxy. Te muestro un ejemplo sencillo que mueve el cursor a la posición (10, 10) (aquí tienes que tomar en cuenta de que con gotoxy el origen es (1,1), mientras que con la otra función comienza en (0, 0))
Código:
#include <windows.h>
main ()
{
   HANDLE hConsoleOutput;
   COORD coord;
   hConsoleOutput = GetStdHandle (STD_OUTPUT_HANDLE);
   coord.X = 10; coord.Y = 10;
   SetConsoleCursorPosition (hConsoleOutput, coord);
}
.
   Si programas bajo GNU/Linux puedes usar la función move(int fila, int columna), que viene en la librería NCURSES la cual funciona en casi todas las distribuciones.


Título: Re: funcion gotoxy ( x , x )
Publicado por: Juan_Perez en 17 Diciembre 2005, 05:51 am
ANELKAOS, me parece que estás confundiendo la instrucción goto del lenguaje C/C++, la cual interrumpe el flujo secuencial del programa saltándose a un lado que tu le especificas, con la función gotoxy (x, y), la cual mueve el cursor a una línea y columna específica, cuando programas en modo consola.


Título: Re: funcion gotoxy ( x , x )
Publicado por: redHat en 17 Diciembre 2005, 05:58 am
No la utilices, es un crimen, es la llamada programación spaguetti xD


Título: Re: funcion gotoxy ( x , x )
Publicado por: GuilleSPA en 17 Diciembre 2005, 12:07 pm
thx all  ;) ;) ;)


Título: Re: funcion gotoxy ( x , x )
Publicado por: anietru en 9 Junio 2011, 06:36 am
 :D
después de investigar un poco en los archivos de dev c++ encontré un archivo de ejemplo donde esta un programa similar al siguiente que me mostró como poner color y posicionar el texto. Me puse muy feliz al poderlo hacer ya que he batallado un poco al respecto y a si quedo mi primer intento  :rolleyes:

Espero les sirva.
 
#include <constream>
using namespace conio;
using namespace std;

int main() {
   
    cout << setattr(BLUE) << setxy(15,15) << "Y DAR COORDENADAS A EN LA PANTALLA";
    cout << setattr(YELLOW) << setxy(10, 10) << "POR FIN!!!";
    cout << setattr(GREEN) <<setxy(13,13) << "PUDE CAMBIAR EL COLOR";
    cout << setattr(BROWN) <<setxy(20,20) << ":)";
   
    getch();
    return 0;
}
 ;-)


Título: Re: funcion gotoxy ( x , x )
Publicado por: Maurice_Lupin en 10 Junio 2011, 04:55 am
Buena función sch3m4, yo me instalaba el conio2 para dev C++  :xD


Título: Re: funcion gotoxy ( x , x )
Publicado por: raver1983 en 26 Octubre 2012, 23:59 pm
//La definicion de gotoxy me da errores, el codigo que pusieron:
//Código:
int gotoxy(SHORT x, SHORT y)
{
   COORD coord;
   HANDLE h_stdout;
   
   coord.X = x;
   coord.Y = y;
   
   if ((h_stdout = GetStdHandle(STD_OUTPUT_HANDLE)) == INVALID_HANDLE_VALUE)
      return 0;
   
   if (SetConsoleCursorPosition(h_stdout, coord) == 0)
      return 0;

   return 1;
}

/*Mi prefunta es: que cabeceras ocupa este codigo para que funcione?, porque al definir la funcion y tratar de usarla me marca multiples errores de compilacion, yo solo inclullo la stdio.h , pero al parecer no es suficiente con esta cabecera para poder definir correctamente esta funcion*/