Pular para o conteúdo

Movendo o cursor em C usando Console Escape Sequence

Dica publicada em C/C++ / Miscelânea
Hunz hunz
Hits: 23.141 Categoria: C/C++ Subcategoria: Miscelânea
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Movendo o cursor em C usando Console Escape Sequence

Quem que conhece a gotoxy() da conio.h? Ou alguma outra função de outra biblioteca?

Pois é, eu não sabia como fazer isso sem o auxílio dessas bibliotecas até que resolvi dar uma lida no "man console_codes" e acabei encontrando como fazer isso de uma maneira bem simples. :)

Aí vai a função:

void movexy(int x, int y)
{
   printf("
Quem que conhece a gotoxy() da conio.h? Ou alguma outra função de outra biblioteca?

Pois é, eu não sabia como fazer isso sem o auxílio dessas bibliotecas até que resolvi dar uma lida no "man console_codes" e acabei encontrando como fazer isso de uma maneira bem simples. :)

Aí vai a função:

void movexy(int x, int y)
{
   printf("
Quem que conhece a gotoxy() da conio.h? Ou alguma outra função de outra biblioteca?

Pois é, eu não sabia como fazer isso sem o auxílio dessas bibliotecas até que resolvi dar uma lida no "man console_codes" e acabei encontrando como fazer isso de uma maneira bem simples. :)

Aí vai a função:

void movexy(int x, int y)
{
   printf("{TEXTO}33[%d;%dH",y,x);
}

NOTA: Na Escape Sequence a coordenada Y (linha) vem antes da X (coluna).

Para usar também é fácil, aí vai um exemplo:

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
#include <stdio.h>

int main(void)
{
   printf("Ola Mundo!");
   movexy(5,5);
   printf("Ola Mundo na linha 5, coluna 5!");
   movexy(1,10);
   printf("Ola Mundo na linha 10, coluna 1!");
   movexy(10,3);
   printf("Ola Mundo na linha 3, coluna 10!");
}

Espero que isso ajude vocês. :)

Abraços,
Fiquem com Deus.

33[%d;%dH",y,x);
}

NOTA: Na Escape Sequence a coordenada Y (linha) vem antes da X (coluna).

Para usar também é fácil, aí vai um exemplo:

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
#include <stdio.h>

int main(void)
{
   printf("Ola Mundo!");
   movexy(5,5);
   printf("Ola Mundo na linha 5, coluna 5!");
   movexy(1,10);
   printf("Ola Mundo na linha 10, coluna 1!");
   movexy(10,3);
   printf("Ola Mundo na linha 3, coluna 10!");
}

Espero que isso ajude vocês. :)

Abraços,
Fiquem com Deus.

33[%d;%dH",y,x);
}

NOTA: Na Escape Sequence a coordenada Y (linha) vem antes da X (coluna).

Para usar também é fácil, aí vai um exemplo:

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
#include <stdio.h>

int main(void)
{
   printf("Ola Mundo!");
   movexy(5,5);
   printf("Ola Mundo na linha 5, coluna 5!");
   movexy(1,10);
   printf("Ola Mundo na linha 10, coluna 1!");
   movexy(10,3);
   printf("Ola Mundo na linha 3, coluna 10!");
}

Espero que isso ajude vocês. :)

Abraços,
Fiquem com Deus.

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

aMSN travando? Sem problemas!

O poder do #define

Checagem de erro do scanf

STDPRN para GCC

Usando funções do sistema em C com "system"

Gnuconio, a conio para Windows e GNU/Linux (v0.1)

STDPRN para GCC

C/C++ no modo Hard

Inserindo e removendo comentários em C/C++ de forma rápida no VIM

#1 Comentário enviado por gm_nununo em 07/04/2005 - 20:33h
/* Uma boa maneira de resolver o problema é com defines...
Joga eles em um .H tipo, meuConio.h e depois é só alegria...
O seu código não funcionou no meu console... mas a dica de procurar a documentação do printf ajudou bastante!!!
*/

#include <stdio.h>
#include <iostream.h>

#define gotoxy(x,y) printf("\x1B[%i;%iH",(y),(x))
#define clrscr() printf("\x1B[2J")
#define clreol() printf("\x1B[K")

int main()
{
clrscr();
gotoxy(10,10);
cout << "ola 1 mundo";
gotoxy(30,30);
cout << "ola 2 mundo";
}
#2 Comentário enviado por leo_nirvana em 21/01/2006 - 13:12h
No meu console a funcao movexy que voce fez nao funcionou entao fiz a seguinte alteracao

void movexy(int x, int y)
{
printf("\033[%d;%dH",y,x);
}

Essa ideia de usar controlador ANSI para posicionar o cursor na tela eh bem legal...

Contribuir com comentário

Entre na sua conta para comentar.