Cómo usar Gotoxy en C++

Gotoxy significa go to (x, y), es decir ir a (x, y), donde (x, y) es una coordenada de nuestra pantalla. Se suele usar antes de un printf, para poner el texto en una cierta parte de la pantalla.

La pantalla de C++, tiene 24 renglones y 80 columnas, por lo que los valores que le pongamos a nuestro gotoxy no deberán pasar de esos valores. gotoxy pantalla

¿Cómo usar gotoxy()?

Su sintáxis es la siguiente:

gotoxy ( columna , renglón ) ;

Así, si queremos que un mensaje salga en la parte inferior de la pantalla, nuestro programa sería el siguiente:

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

int main() {
  gotoxy(5,24);printf("Hola mundo");
  getch();
}

¡Qué fácil! ¿no?

162 thoughts on “Cómo usar Gotoxy en C++

  1. 0la, una pregunta, lo que yo tengo duda es cuando salen los resultados o que mandas a imprimir algun resultado pero si son varias filas solo le pone el goto a la 1ra pero no a todo, como le puedo hacer para q lo ponga a todo?. Saludos!

  2. hola, ocupo de su valiosa ayuda!!!
    Tengo q Elaborar un algoritmo que imprima los valores del 1 al 1000 pero solo los números Impares.
    Debe estructurar una programa para que lo realice utilizando el : do-while, for y while

      1. El ‘if dentro del ‘do while’ no es necesario, aunque es una solución válida. Otra alternativa sería:

        int num = 1;
        do
        printf(“%4i%c”, num, ((num+1)%25 ? ”:’n’)),
        num+=2;
        while (num < 1000);

  3. necesito ayuda, un programa que haga lo siguiente: que al momento de que presione cualquiera de las siguientes teclas Q, W ,E, D, Z, X y C, la letra S se mueva a ese lugar, ayudeeeenme

  4. Alguien pude ayudarme a hacer una tabla usando el gotoxy ?????
    es urgente xfas !!! =(
    *mi programa trata de hacer una boleta e imprimirla en formnma de tabla

  5. #include
    #include
    #include
    main()
    {
    clrscr();
    char opc; int a,h,b,r,l,
    gotoxy(12,10);cout<<"Area de:";
    gotoxy(12,12);cout<<"a) Triàngulo";
    gotoxy(12,13);cout<<"b) Cìrculo";
    gotoxy(12,14);cout<<"c) Cuadrado";
    gotoxy(12,15);cout<<"d) Rectángulo";
    gotoxy(12,17);cout<>opc;
    switch(opc)
    {
    case ‘1’:
    cout<>h;
    cout<>b;
    a=(b*h)/2;
    cout<<"El area es:"<<a;
    break;
    case '2':
    cout<>r;
    a=3.1416*(r*r);
    cout<<"El area es:"<<a;
    break;
    case '3':
    cout<>l;
    a=l*l;
    cout<<"El area es:"<<a;
    break;
    case '4':
    cout<>b;
    cout<>h;
    a=b*h;
    cout<<"El area es:"<<a;
    default:
    cout<<"Se equivocó, vualva a intentarlo";
    break;
    }
    getch();
    }

    CUAL ES MI ERROR?:( LO MARCA EN GOTOXY

  6. ACTUALIZATE UN POCO, deja de utilizar prints de mierda, y utiliza COUT, porque en C++ se utilizan C++

  7. necesito de su ayuda
    tengo que diseñar un progrma en el cual se trabaje cada division de datos de una factura por decir yo tengo una dnd compre unos floreros y dos pares de zapatos unos camel y unos coral, utilizar funciones sin parametros, registros cada pantalla debe contener una funcion que llame a la pantalla con un marco,el cual se va a estar llenando o apareciendo cada ves que se abra la pantalla el menu se hará con las sig.
    -capturar()
    -mostrar()
    consultar()
    -eliminar()
    -salir()
    me urge amigoss
    vale 30 ptos de mi calificacion espero y me ayuden!!!

  8. hola necesito una ayuda!
    quiero que mi programas me regrese ala pantalla principal
    pero no lo hace! solo se queda pidiéndomelo los datos ayuda!

    #include
    #include
    #include
    #include
    #include
    #include
    #include

    int gotoxy(SHORT x,SHORT y);
    void pantalla () {
    int i, j;

    for (i=1; i<=79; i++) {
    gotoxy (i,1);printf ("=");
    gotoxy (i,3);printf ("=");
    gotoxy (i,23);printf ("=");
    gotoxy (i,25);printf ("=");
    }
    for(j=1;j<=25;j++)
    {
    gotoxy(1,j);printf("=");
    gotoxy(79,j);printf("=");
    }
    for (j=1; j<=25; j++)
    {
    gotoxy (1,j);printf ("=");
    gotoxy (79,j);printf ("=");
    }
    }
    void pantalla2 () {
    int i, j;
    for (i=30; i<=55; i++)
    {
    gotoxy (i,7);printf ("*");
    gotoxy (i,14);printf ("*");
    }
    for (j=7; j<=14; j++)
    {
    gotoxy (29,j); printf ("*");
    gotoxy (56,j); printf ("*");
    }
    }

    struct empleado
    {
    char nombre [30];
    char cargo [30];
    char area_de_trabajo [30];
    float salario;
    float salariofinal;
    float bon;
    int ciudad;

    };

    int main () {
    printf("n");
    struct empleado emp[100];
    int e,dat,caracas=15, valencia=20, zulia=25;
    int i=0,op=1,j,ciudad;
    float salariofinal,salario;
    float bon;
    while(op!=0)
    {
    pantalla ();
    pantalla2 ();
    gotoxy (30,9); printf("1)Ingresar Trabajadorn");
    gotoxy (30,10); printf("2)trabajadores Registradosn");
    gotoxy (30,11); printf("0)salir de Sistema.n");
    gotoxy (30,24); printf ("Seleccion: "); scanf("%d",&op);
    for (i=30; i<=50; i++)
    {
    gotoxy (i,7);printf ("*");
    gotoxy (i,14);printf ("*");
    }
    for (j=7; j<=14; j++)
    {
    gotoxy (29,j); printf ("*");
    gotoxy (50,j); printf ("*");
    }

    system ("CLS");

    if(op==1)
    {
    i++;
    for(e=0;e<dat;e++)

    {
    pantalla ();
    printf("n");
    gotoxy (30,4); printf ("** INGRESE LOS DATOS ** ");
    gotoxy (30,9) ; printf("Nombre y Apellidos[%d]:n ",e+1); gotoxy (30,10); scanf("%s",&emp[e].nombre);
    fflush (stdin);
    gotoxy (30,11); printf("cargo[%d]:n ",e+1); gotoxy (30,12); scanf("%s",&emp[e].cargo);
    gotoxy (30,13); printf("Salario[%d]:n ",e+1); gotoxy (30,14); scanf("%f",&emp[e].salario);

    system ("CLS");
    pantalla ();
    pantalla2 ();
    gotoxy (23,4); printf ("**Indique La Socursar Zona Donde Labora**nn");
    gotoxy (30,10); printf ("1) Ciudad CARACASn ");
    gotoxy (30,11); printf ("2) Ciudad VALENCIAn");
    gotoxy (30,12); printf ("3) Ciudad MARACAIBOn");
    gotoxy (30,24); printf ("Seleccion: "); scanf("%s",&emp[e].ciudad);
    system ("CLS")
    if(ciudad==1)
    {
    emp[e].bon=salario*caracas/100;
    printf("SU BONO ES[%d]:n ",bon);
    emp[e].salariofinal=salario+bon;
    printf("su sueldo ma bono sera [%d]:n ",emp[e].salariofinal);
    }
    if(ciudad==2)
    {
    emp[e].bon=salario*valencia/100;
    printf("SU BONO ES[%d]:n ",bon);
    emp[e].salariofinal=salario+bon;
    printf("su sueldo ma bono sera [%d]:n ",emp[e].salariofinal);
    }
    if(ciudad==3)
    {
    emp[e].bon=salario*zulia/100;
    printf("SU BONO ES[%d]:n ",bon);
    emp[e].salariofinal=salario+bon;
    printf("su sueldo ma bono sera [%d]:n ",emp[e].salariofinal);
    }

    }

    if(op==2)
    {
    for(j=0;j<=i;j++)
    {
    printf(" %s ",emp[e].nombre);
    printf(" %f ",emp[e].bon);
    printf(" %f ",emp[e].salariofinal);

    getch();
    }
    }
    getch();
    }

    }
    }
    int gotoxy(SHORT x,SHORT y)
    {
    COORD coord;
    CONSOLE_SCREEN_BUFFER_INFO csb;
    HANDLE h_stdout;
    if((h_stdout=GetStdHandle(STD_OUTPUT_HANDLE))==INVALID_HANDLE_VALUE)
    return 0;
    if(GetConsoleScreenBufferInfo(h_stdout,&csb)==0)
    return 0;
    x–;
    y–;
    if(xcsb.srWindow.Right)
    return 0;
    if(ycsb.srWindow.Bottom)
    return 0;
    coord.X=x;
    coord.Y=y;
    if(SetConsoleCursorPosition(h_stdout,coord)==0)
    return 0;
    return 1;
    }

  9. hola, me urge para mañana estos 4 probemas:
    1.- elaborar un algoritmo, un diagrama de flujo y un pseudocodigo que convierta 26 millas y 35 yardas en kilometros.
    2.-elabora un algoritmo, un diagrama de fljo y un pseudocodigo que genere numeros en serie del 0 al 500.
    3.- elabora un algoritmo un diagrama de flujo y un pseudocodigo que convierta de °c a °f

  10. hola neceesito hacer un portada con goto xy con las siguientes nombres titulo,subtitulo, carrera,grupo, presenta ok bueno les agradeceria su ayuda gracias saludos

  11. hello😄 necesito un poco de ayuda…
    debo hacer un programa que me de los números del 0 al 100,
    que vayan de 3 en 3…
    por favor ayuda…

  12. Hola que tal estoy realizando un trabajo, que imprime una tabla de multiplicar dependiendo el valor inicail de la tabla y el valor final de la tabla, el trabajo esta echo mas al ejecutarlo y poner un valor final mayor a 38 el resultado en la tabla enchueca no se si puedan ayudar.

    #include
    #include

    main()
    { int num,tabla,resultado,r=9,valori,valorf;
    textcolor(4);
    textbackground(2);
    gotoxy(10,2);cprintf(“Cualquier tabla de multipplicar.”);
    gotoxy(8,5); printf(“Proporcione cual tabla de multiplicar quiere:”);
    gotoxy(8,6); printf(” Proporcione el numero inicial:”);
    gotoxy(8,7); printf(” Proporcione el numero final:”);
    gotoxy(54,5); scanf(“%i”,&tabla);
    gotoxy(54,6); scanf(“%i”,&valori);
    gotoxy(54,7); scanf(“%i”,&valorf);

    for(num=valori; num<=valorf; num++)
    { r=r+1;
    resultado = tabla * num;
    gotoxy(11,r);printf("%i*%i=%i",tabla,num,resultado);}
    gotoxy(30,10); printf("Hernandez Gerardo Marcos…");
    getch(); }

  13. Hola, tengo que hacer un programa que haga la suma de los vectores en orden ascendente y descendente con Gotoxy y esto “[]”…. me ayudas?

    1. La suma de qué vectores? Puedes aclarar más acerca del problema. Para que quieres el Gotoxy para sumar 2 vectores, no es muy claro lo que te propones.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s