posicao do texto na tela [RESOLVIDO]

1. posicao do texto na tela [RESOLVIDO]

jose braga
jwbraga

(usa Ubuntu)

Enviado em 27/04/2020 - 18:59h

boa noite!
sistema: xbuntu
ide codblocks
linguagem C
eu nao sei como posicionar texto na tela. Ex.: printf("ola mundo!");.
Eu quero que imprima na tela na linha 10, coluna 20.
Isso e possivel?
grato, jose.

---
Obrigado a todos pela ajuda. as respostas foram otimas. mas, neste site: https://terminaldeinformacao.com/2012/08/25/programacao-gcc-gconio-h/, encontrei um exemplo que atendeu a minha pergunta:

/* jwb_gotoxy1.c */

#include <stdio.h>
#include <gconio.h>

int main()
{
int linha=5, coluna=10;
clrscr(); //limpa a tela
gotoxy(coluna+20,linha); //vai para a posição coluna 10, linha 5
printf("--> Terminal de Informação <--nn");
delay(2000); //espera 2 segundos
getchar(); //espera uma entrada do teclado
return 0;
}

obrigado! Topico encerrado.



  


2. Re: posicao do texto na tela [RESOLVIDO]

Heitor Costa
Heitor.rj

(usa Slackware)

Enviado em 28/04/2020 - 21:51h

Para imprimir Ola mundo como vc diz! Vc mesmo terá que informar no próprio printf a posição: exemplo: Pulei 9 Linhas, então estou na linha 10, e fui para a Coluna 20 onde começo escrevendo ola mundo!
#include <stdio.h>
int main(void) {
printf("\33[H\33[2J"); // Limpo a tela!
printf("\n\n\n\n\n\n\n\n\n ola mundo!\n");
}

Outro Exemplo bem bacana e bem didático! Aqui eu posiciono o Cursor onde eu quero que ele digite!
#include <stdio.h>
int main(void) {
printf("\33[H\33[2J");

printf(
"Entre com um numero dentro da caixa\n"
"+-----------------+\n"
"| |\n"
"+-----------------+\n"
);
printf("\033[%d;%dH", (3), (2)); // Informo a posição do cursor. Linha 3, Coluna 2
int number;
scanf("%d", &number);
}




3. Re: posicao do texto na tela [RESOLVIDO]

Paulo
paulo1205

(usa Ubuntu)

Enviado em 29/04/2020 - 01:07h

jwbraga escreveu:

boa noite!
sistema: xbuntu
ide codblocks
linguagem C
eu nao sei como posicionar texto na tela. Ex.: printf("ola mundo!");.
Eu quero que imprima na tela na linha 10, coluna 20.
Isso e possivel?
grato, jose.


Algumas pessoas vão dizer (e uma pessoa já até disse) para colocar códigos de sequência de escape compatíveis com ANSI X3.64 diretamente no seu programa.

Eu não gosto dessa abordagem porque volta e meia haverá casos em que você não terá um terminal compatível com ANSI X3.64 (ou terminal nenhum, muitas vezes), e essas sequências de escape embutidas no código vão acabar produzindo lixo nesses contextos.

Eu prefiro tirar as sequências de escape de junto das minhas strings, usando ou recursos da biblioteca Curses (incluindo nCurses e pdCurses, disponíveis inclusive no Windows) ou chamadas de um pouco mais baixo nível de termcap/terminfo.

Há exemplos de como fazer em alumas postagens minhas neste fórum, tais como nestes tópicos: https://www.vivaolinux.com.br/topico/C-C++/Cores-terminal-Linux e https://www.vivaolinux.com.br/topico/C-C++/gotoxy-em-C.

Talvez valha a pena colocar como medida protetiva verificar se você tem mesmo um terminal no início do programa. Uma forma de fazer isso é tentar abrir o dispositivo /dev/tty para leitura e escrita. Se falhar, é garantido que você não tem um terminal, não devendo, portanto, tentar usar sequências de escape.


... Então Jesus afirmou de novo: “(...) eu vim para que tenham vida, e a tenham plenamente.” (João 10:7-10)


4. Re: posicao do texto na tela [RESOLVIDO]

berghetti
berghetti

(usa Debian)

Enviado em 12/05/2020 - 13:14h


Há exemplos de como fazer em alumas postagens minhas neste fórum, tais como nestes tópicos: https://www.vivaolinux.com.br/topico/C-C++/Cores-terminal-Linux e https://www.vivaolinux.com.br/topico/C-C++/gotoxy-em-C.


Ola Paulo,
editei o exemplo do primeiro link para imprimir na saída de erro e não imprimiu as cores.
utilizando diretamente os caracteres de escape ás cores são impressas.

tem jeito utilizando a terminfo?







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts