Conio.h para Linux

Pessoal estou disponibilizando pra todos a conio.h para Linux, baseada na biblioteca ncurses. Ela possui algumas das principais funções da conio.h do DOS/Windows. Confiram.

[ Hits: 89.614 ]

Por: Jefferson dos Santos Felix em 20/04/2004


Como funciona



A conio.h, como eu disse, é uma ncurses "disfarçada", portanto, você terá que instalar a biblioteca ncurses. Existem diversos artigos neste site que falam dos poderes dessa biblioteca. Dê uma olhada.

Para utilizar a conio.h, copie o código da página anterior e salve em /usr/include/conio.h.

Para que as funções da conio funcionem, você deve incluir no início de seu código C:

initconio();

e no fim do código:

endconio(); //Não se esqueça de colocar essa linha, senão seu shell vai ficar meu esquisito quando sair do seu programa!

Na hora de compilar seu programa, você deve especificar a biblioteca ncurses, exemplo:

# gcc meuprog.c -o ~/bin/meuprog -lncurses

Detalhe importante: Algumas funções da biblioteca stdio.h não irão funcionar com a conio.h, é o caso de printf() e scanf(), por exemplo. Para contornar o problema, você pode utilizar as funções printw() e scanw() da ncurses, que dá no mesmo!

Gente é isso aí!
Falou

Página anterior     Próxima página

Páginas do artigo
   1. A conio.h
   2. Como funciona
   3. Conclusão
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Tutorial OpenGL

Aprendendo a utilizar o GNU Debugger (parte 1)

Substituindo a biblioteca conio.h no Linux usando ncurses curses.h

Utilizando a biblioteca NCURSES - Parte III

Brincando com o editor HT

  
Comentários
[1] Comentário enviado por fabio em 20/04/2004 - 23:13h

Muito bacana seu conio.h, não programo muito em C, mas tô ligado que isso faz maior falta pra galera de faculdade, que no geral se amarra em chegar no laboratório com um programinha colorido e cheio de recursos de formatação de tela. :)

Uma dica: você podia enviar seu código-fonte como script para o site também, assim facilita o processo de download, pois ao invés de copiar e colar o cara já teria um botãozinho "Download" linkado com esse artigo.

[2] Comentário enviado por jose_maria em 21/04/2004 - 08:59h

Legal cara, me amarro nos artigos de programação.
Queria saber se alguem sabe de algo parecido com a CRT do Pascal, para Pascal mesmo.
Gostaria também que o Fabio criasse uma pasta PASCAL na seção de scripts. :D

[3] Comentário enviado por jeffestanislau em 22/04/2004 - 08:02h

Muito bo mesmo, pois já vi vários usuários correndo atrás dessa biblioteca par linux... muito boa a sua iniciativa!!!

[4] Comentário enviado por jeffestanislau em 22/04/2004 - 08:07h

Muito bom mesmo, pois já vi vários usuários correndo atrás dessa biblioteca par linux... muito boa a sua iniciativa!!!

[5] Comentário enviado por kashmir em 24/04/2004 - 00:33h

concordo com o jeffestanislau, pois muita gente precisa desta biblioteca para linux valeu mesmo.

[6] Comentário enviado por ygorth em 25/04/2004 - 21:45h

muito legal!

[7] Comentário enviado por ron_lima em 23/05/2004 - 20:21h

Olá, Jefferson.

Já pensou em criar um projeto no source forge com essa biblioteca? Não só esse layer que você está criando para o I/O de console do windows, como também um projeto mais ambicioso, como portar a Win32 para utilizar alguma biblioteca unix, como motif, lesstiff, Qt+ ou coisa parecida. Acredito que será um projeto muito procurado pois tem muita gente querendo portar as coisas do Windows para o unix.

Abraço!

[8] Comentário enviado por engos em 23/06/2004 - 16:55h

Sou um dos que "não larga a mão de programar no modo texto" e ainda prefiro utilizar a ncurses diretamente, mesmo se for para migrar um programa do Ruindows...

Entretanto gostei de saber que existe uma opção a mais e com certeza isso vai ajudar bastante programadores.

Sua conio.h está bem elaborada, parabéns.

[9] Comentário enviado por arcanjo_mg em 05/10/2005 - 10:45h

Kra, mto bom isso, eu precisava mesmo de uma dessas, pois na faculdade usamos mto a conio.h e em ksa meu Linux tem que ter modificações pra roda meus programinhas.

[10] Comentário enviado por cientistamaluko em 21/11/2005 - 12:59h

Rapaz muito obrigado.....há um bom tempo eu estou atrás dessa biblioteca......será muito útil para nós. Vai ficar mais fácil conciliar meus trabalhos com dos meus colegas que usam Windows. Flws.

[11] Comentário enviado por djx em 06/04/2006 - 11:31h

Ola eu sewi q esse artigo eh bem antigo...
Eu nao gosto de programar apenas para win ou Linux mas diante desta divergencia gosto de programar para os 2...
Mas estava navegando e gostei desta lib...
Eu poderia utiliza no meu programa e distribui-la no meu codigo fonte?
Antecipadamente,
Vlw...

[12] Comentário enviado por klebervirgilio em 28/02/2009 - 11:57h

Amigo...

E as funções getch()... getche()???

[13] Comentário enviado por rodrigofariat em 11/03/2010 - 16:10h

Oi,

Eu uso o Ubuntu 9.10, onde tenho de colocar o arquivo para que seja reconhecida.
Tentei colocar no mesmo diretório do iostream.h.

cp conio.h /usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/include/c++/backward/
cp conio.h /usr/include/c++/4.2/backward/

Mesmo assim nao surgiu efeito.


[14] Comentário enviado por fabrizzio.soares em 06/08/2010 - 09:31h

Sei que estou postando bem atrasado.
Sua iniciativa ficou muito boa. Só para complementar. Não é recomendável que arquivos .h contenham codificação de funções. Deve conter somente declarações de variáveis, constantes, defines, structs, typedefs e protótipos de funções. O corpo de funções deve ficar em um arquivo .c que será compilado junto com o projeto que o utilizará. Baseado nisto pode-se criar uma lib sua.

rodrigofariat você pode colocar o arquivo no diretório do seu código fonte que ele encontrará.
Faça um #include "conio.h"

[15] Comentário enviado por rodrigofariat em 19/04/2012 - 16:29h

Beleza,

Eu estou usando o Ubuntu 10.10, coloquei o conio.h no /usr/include.

rodrigo@rodrigo-Calistoga-ICH7M-Chipset:~/c++$ g++ lab1final.cpp -o lab1final.cpp
lab1final.cpp: In member function ‘void Vetor::imprime()’:
lab1final.cpp:125: error: ‘cout’ was not declared in this scope
lab1final.cpp: In member function ‘void ApontadorInteiro::RetornaEndereco()’:
lab1final.cpp:158: error: ‘cout’ was not declared in this scope
lab1final.cpp: At global scope:
lab1final.cpp:162: error: ‘::main’ must return ‘int’
lab1final.cpp: In function ‘int main()’:
lab1final.cpp:165: error: ‘cout’ was not declared in this scope
lab1final.cpp:166: error: ‘endl’ was not declared in this scope
rodrigo@rodrigo-Calistoga-ICH7M-Chipset:~/c++$

Ainda o compilador não consegue achar a biblioteca conio, é preciso rodar o ldd, para que o conio.h seja reconhecido ?


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts