Conio.h para Linux (Nova versão)
Publicado por Jefferson dos Santos Felix 21/04/2004 (última atualização em 28/08/2012)
[ Hits: 28.393 ]
Download 1333249348.conio.h (versão 2)
Download 1344828792.conio.h (versão 3)
Download gnuconio-0.1.7z (versão 4)
Ae galera que se amarra em programação C/C++ e tem saudades da conio.h do DOS/Windows estou disponibilizado para download a versao para linux. A primeira versão (que coloquei nos Artigos) possuía alguns erros pois os programas que eram feitos para DOS/Windows não estavam ficando corretamente formatados no Linux. Agora tem também a função getch() e getche(). Até mais galera da comunidade!
Lembrando que para funcionar você deve ter a ncurses instalada!
Versão 2 - Enviado por Felipe Ruiz Peixoto em 31/03/2012
Changelog: Atualização da implementação criada por Jefferson.
Agora o mesmo código escrito para windows podera funcionar no linux sem modificar nada. Para inicializar e finalizar basta utilizar uma das funções desta implementação, recomendo o clrscr(). Os comandos printf e scanf são automaticamente redefinidos para printw e scanw.
Meu e-mail : felipeludo2011@gmail.com
Se o nome do arquivo estiver diferente de "conio.h", renomeie ele antes de usar.
Lembre-se: Precisa ter o ncurses instalado.
Versão 3 - Enviado por Felipe Ruiz Peixoto em 13/08/2012
Changelog: Melhorias no código do getche() e do getch()
Versão 4 - Enviado por Felipe Ruiz Peixoto em 27/08/2012
Changelog: Tambem pode ser baixado em
https://sourceforge.net/projects/gnulinuxconioh
Compativel com Windows e Linux, e sem precisar modificar o código que você fez no Windows para funcionar no Linux, seguindo apenas dois passos simples.
#ifndef __CONIO_H
#define __CONIO_H
#ifndef __CURSES_H
#include <curses.h>
#endif
#define BLACK 0
#define RED 1
#define GREEN 2
#define BROWN 3
#define BLUE 4
#define MAGENTA 5
#define CYAN 6
#define LIGHTGRAY 7
#define DARKGRAY 8
#define LIGHTRED 9
#define LIGHTGREEN 10
#define YELLOW 11
#define LIGHTBLUE 12
#define LIGHTMAGENTA 13
#define LIGHTCYAN 14
#define WHITE 15
int initconio(void);
int endconio(void);
int clrscr(void);
int clreol(void);
int textcolor(int color);
int textbackground(int color);
int getche(void);
int wherex(void);
int wherey(void);
int gotoxy(int x, int y);
int newline(void);
short cur_pair, cur_bold;
int initconio(void)
{
short f, b, p;
initscr();
start_color();
noecho();
p = 1;
for(f = 0; f < 8; f++)
for(b = 0; b < 8; b++, p++)
init_pair(p, f, b);
cur_pair = 57;
cur_bold = 0;
color_set(cur_pair, NULL);
attroff(A_BOLD);
return 0;
}
int endconio(void)
{
endwin();
return 0;
}
int clrscr(void)
{
bkgdset(COLOR_PAIR(cur_pair));
if(cur_bold == 0)
attroff(A_BOLD);
else
attron(A_BOLD);
clear();
return 0;
}
int clreol(void)
{
int cur_x, x, y, maxx;
color_set(cur_pair, NULL);
getmaxyx(stdscr, y, maxx);
cur_x = wherex();
gotoxy(1, wherey());
for(x = 1; x <= maxx; x++)
printw(" ");
gotoxy(cur_x, wherey() - 1);
return 0;
}
int textcolor(int color)
{
short x, y, f, b, p = 1;
pair_content(cur_pair, &f, &b);
for(x = 0; x < 8; x++)
for(y = 0; y < 8; y++, p++)
if((x == (color%8))&&(y == b))
cur_pair = p;
color_set(cur_pair, NULL);
if(color >= 8)
cur_bold = 1;
if(cur_bold == 0)
attroff(A_BOLD);
else
attron(A_BOLD);
return 0;
}
int textbackground(int color)
{
short x, y, f, b, p = 1;
pair_content(cur_pair, &f, &b);
for(x = 0; x < 8; x++)
for(y = 0; y < 8; y++, p++)
if((x == f)&&(y == (color%8)))
cur_pair = p;
color_set(cur_pair, NULL);
return 0;
}
int getche(void)
{
char c;
echo();
c = getch();
noecho();
return c;
}
int wherex(void)
{
int x, y;
getyx(stdscr, y, x);
return x + 1;
}
int wherey(void)
{
int x, y;
getyx(stdscr, y, x);
return y + 1;
}
int gotoxy(int x, int y)
{
move(y - 1, x - 1);
return 0;
}
int newline(void)
{
gotoxy(1, wherey() + 1);
return 0;
}
#endif
Entrar com um número e imprimir todos os seus divisores
Criando usuários através de arquivo texto
Simples gerador de números primos
A Fundação da Confiança Digital: A Importância Estratégica de uma PKI CA na Segurança de Dados
Como enviar dicas ou artigos para o Viva o Linux
Como Ativar a Aceleração por GPU (ROCm) no Ollama para AMD Navi 10 (RX 5700 XT / 5600) no Gentoo
Cairo Dock ainda funcional nos dias de hoje
Configuração de IP fixo via nmcli e resolução de nomes via /etc/hosts no Gentoo
Removendo o bloqueio por erros de senha no Gentoo (systemd)
Papel de Parede Animado no KDE Plasma 6 (Com dicas para Gentoo)
Homebrew: o gerenciador de pacotes que faltava para o Linux!
Ajudante para criar dicas e artigos no VOL (31)
Hardware (corpo), Software (mente) e Kernel (conexão) (0)
Tentando fazer um "linux ricing" mas falhando miseravelmente... (3)









