quarta-feira, 14 de julho de 2021

Posicionando o cursor no Code::Blocks

 Prezados leitores:

Depois de alguns anos sem posts, estou reativando o blog para levar informações adicionais para  os meus alunos e, eventualmente, comentar assuntos fora da área de eletrônica embarcada.

Nessa postagem falarei sobre o posicionamento do cursor na tela para aplicativos de console, informação voltada aos iniciantes na programação C.

A função gotoxy (int x, int y)  disponível no Turbo C / C ++,  não é padrão do ANSI C.

Esta função é usada para mover o cursor  para um local desejado na tela. O canto superior esquerdo do monitor tem coordenadas (0,0) e o canto inferior direito pode ser qualquer coordenada, dependendo do tamanho da tela. O compilador GCC não disponibiliza a função gotoxy. 

Se você estiver desenvolvendo aplicativos de console sem uma biblioteca gráfica de terceiros, a função gotoxy será útil.

Se você precisa de uma implementação semelhante a função gotoxy em uma máquina Windows com o compilador GCC, o código-fonte lhe será útil:

#include <stdio.h>

#include <stdlib.h>

#include <windows.h>


int main()

{

    COORD p;

    p.X = 10;

    p.Y = 5;

    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), p);

    printf("CURSOR\n\n");

    system("pause");

}

Mais informações sobre a função  "setconsolecursorposition" em:

https://docs.microsoft.com/pt-br/windows/console/setconsolecursorposition


Se você precisa de uma implementação no GCC Linux , segue abaixo  um código-fonte compatível:

#include<stdio.h>

 void gotoxy(int, int) ;


int main ()

{

    int x=10, y=5;

    gotoxy(x,y); 

    printf("CURSOR\nPressione qualquer tecla para continuar. . . ");

    getchar();

    return 0;

}

// Função gotoxy() 

void gotoxy(int x,int y)    

{

    printf("\e[%d;%df",y,x);

}

 /* 

\e é o caractere de escape que avisa o seu terminal que as informações que seguem

 não devem aparecer na tela, constituindo-se um comando para o terminal (ou  emulador).

O 'f' (pode ser 'H') final indica que se deseja posicionar o cursor no lugar da tela

indicado pelas coordenadas que o precedem.

*/

Boa leitura