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.
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!
[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
[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.
[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.
[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...
[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 ?