Conio.h para Linux (Nova versão)
Publicado por Jefferson dos Santos Felix 21/04/2004 (última atualização em 28/08/2012)
[ Hits: 27.849 ]
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
Atenção a quem posta conteúdo de dicas, scripts e tal (6)
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
O mínimo que você precisa saber sobre o terminal (parte 2)
O mínimo que você precisa saber sobre o terminal (parte 1)
Como iniciar uma máquina virtual do VirtualBox automaticamente no boot do LUbuntu 18 LTS
Mudar o gerenciador de login (GDM para SDDM e vice-versa) - parte 2
Como deixar as abas do Firefox mais fininhas
Mudar o gerenciador de login (GDM para SDDM)
"Tentando" fazer com que programas rodem no Wayland e no X11
Porblema com MergeList [RESOLVIDO] (10)
Melhor hospedagem em nuvem para projetos Laravel com baixo custo? [RES... (7)
Como baixar os drivers de áudio no linux mint? (7)
Como posso localizar o arquivo HTML da página inicial do GLPI dentro d... (2)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta