Este artigo vai ajudar você a utilizar a biblioteca NCURSES, começaremos com um programa olamundo.c onde aprenderemos o básico da biblioteca NCURSES e nos próximos artigos estarei dificultando os programas.
Agora vamos ao que interessa, para ensinar a vocês a utilizar a NCURSES eu vou colocar
um programa e vou explicando o que cada linha de comando faz e a cada novo artigo eu
vou acrescentando novas funções ao nosso programa.
Neste exemplo abaixo nós vamos criar o famoso programa "Olá Mundo":
{ olamundo.c }
#include <curses.h> //Incluiremos a biblioteca ao nosso sistema
#include <stdio.h>
void sair (void); //Esta função fará com que o programa seja fechado
int main(void)
{
initscr(); /*Esta função inicializa a ncurses. Para todos os programas
devemos sempre inicializar a ncurses e depois finalizar, como
veremos adiante. */
start_color(); //Esta função torna possível o uso das cores
//Abaixo estamos definindo os pares de cores que serão utilizados no programa
init_pair(1,COLOR_WHITE,COLOR_BLUE); //Texto(Branco) | Fundo(Azul)
init_pair(2,COLOR_BLUE,COLOR_WHITE); //Texto(Azul) | Fundo(Branco)
init_pair(3,COLOR_RED,COLOR_WHITE); //Texto(Vermelho) | Fundo(Branco)
bkgd(COLOR_PAIR(1)); /*Aqui nós definiremos que a cor de fundo do nosso
programa será azul e a cor dos textos será branca.*/
attron(COLOR_PAIR(3)); /*Estamos alterando o par de cores para 3 em vez
de utilizar o par de cor por omissão(1).*/
move(2,1); //Aqui estamos movendo o cursor para a linha 2 coluna 1.
printw("Olá mundo!!!"); //Imprimimos um texto na tela na posição acima.
attroff(COLOR_PAIR(3)); /*Estamos alterando o par com a cor por omissão,
ou seja, retornando para o par de cor 1. */
attron(COLOR_PAIR(2));
move(3,1);
printw("Qualquer tecla para sair."); /*Imprimimos um texto na tela na
posição acima. */
attroff(COLOR_PAIR(2));
refresh(); //Atualiza a tela
getch(); //Fica esperando que o usuário aperte alguma tecla
sair(); // Sai do programa
}
void sair()
{
endwin(); /*Sempre que finalizarmos um programa com a biblioteca curses,
devemos executar este comando.*/
exit(0);
}
Agora é só compilar:
gcc olamundo.c -o olamundo -lncurses
Você pode fazer o download do código-fonte desta página clicando no link abaixo:
[1] Comentário enviado por marcmarq em 25/02/2004 - 20:12h
Pessoal tentei rodar o programa desta página e ele não rodou.
Aliás, entrei em outro site e tentei rodar um básico "Ola MUNDO!" e ele também não rodou.
Estou com um Red Hat 9.0. e estou compilando via terminal, o que eu estou fazendo de errado?
Dei uma olhada na pasta /usr/lib/include e achei o header ncurses.h lá, quer dizer que a ncurses está instalada?
Senão estiver como posso instala-la?
[5] Comentário enviado por FireBird em 08/03/2006 - 16:17h
Cara.Foi mal ai... desculap se eu estiver cometendo alguma burice... asm baixei esse programa e compilei ele... beleza...funcionou.. so que saiu tudo preto e branco... era pra sair assim mesmo? se era..intaum por que usar esses comandos de cores?
[7] Comentário enviado por RuizBRX11 em 28/03/2012 - 08:18h
O código fonte do "olá mundo" mostrou alguns erros antes de compilar :
Se eu compilar usando o codigo gcc olamundo.c -o olamundo -lncurses, mostra um erro no comando exit()
olamundo.c:41: warning: incompatible implicit declaration of built-in function ‘exit’
E se eu compilar usando gcc -Wall -o "olamundo" "olamundo.c" -lncurses
olamundo.c: In function ‘sair’:
olamundo.c:41: warning: implicit declaration of function ‘exit’
olamundo.c:41: warning: incompatible implicit declaration of built-in function ‘exit’
olamundo.c: In function ‘main’:
olamundo.c:35: warning: control reaches end of non-void function
[8] Comentário enviado por RuizBRX11 em 28/03/2012 - 08:30h
Agora compilei da mesma forma mas inclui a biblioteca stdlib.h, como sugeriu emax17, e não retornou erro nenhum, no gcc mesmo.
Porem o caractere com acento agudo não apareceu, ficou aquele ponto de interrogação no lugar dele, tem alguma biblioteca que resolve isto?
Valeu !
[9] Comentário enviado por gabriel4g em 07/12/2017 - 19:46h
Não entendo uma coisa eu compilei o código e não tava com suporte a caracteres ñ ñ ç... mais quando eu redigitei e compilei o terminal estava lendo os caracteres normalmente.
OBS: para o código compilar direito tive que importar o "stdlib"
[10] Comentário enviado por SaruMan64 em 29/12/2017 - 23:48h
Olá!!!
Eu fiz de duas formas, a primeira copiei o codigo-fonte, e a segunda fiz o download, porem ambos na hora da compilação deram erro de indentificação das sintaxes da biblioteca ncurses. Tentei compilar das seguintes formas: