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?

Advertisements

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 XD 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