[FUG-BR] C/C++

Ricardo Nabinger Sanchez rnsanchez em gmail.com
Quarta Fevereiro 21 10:31:29 BRT 2007


On Wed, 21 Feb 2007 10:46:18 +0000
Rodrigo Ferreira <rsferreira em vipway.com.br> wrote:

> eu sei que 1 erro é que ele não esta encontrando o conio.h, mais eu não 
> consegui localizar ele.
> 
> Alguem poderia me dar um help para tentar compilar isso?

conio.h significa "Console I/O", e acho que só os compiladores da Borland
oferecem isso.  Não tem pra UNIX (que eu saiba), embora seja só uma questão de
fazer.  O mais apropriado é tu identificar o que tu realmente usa na conio.h
e ver se encontra similares na stdio.h, stdlib.h e unistd.h.  Se não
encontrar, pode ser que seja algo muito "MS-DOS".

Como sugestão, dê uma olhada na biblioteca ncurses (google ncurses), que
provavelmente terá todas as funcionalidades que tu busca de console, além de
ser altamente portável.

A parte mais difícil, de longe, será aceitar a transição abrupta de telas DOS
para terminais TTY UNIX (não "pode" mais escrever diretamente na memória de
vídeo).  :)

Últimas dicas: em UNIX, getch() existe como getc(), na stdio.h.  Os includes
em geral tu não fará com o caminho absoluto, apenas "#include <stdio.h>",
pois tu não tem certeza de como o usuário instalou o compilador dele (ie, os
arquivos .h podem estar em /usr/local/gcc-4.1.1/include ou algum outro
diretório que ele tenha inventado).  Caso o compilador não encontre os
arquivos, tu inclui diretórios de busca com "-I/usr/local/gcc-4.1.1 -I.", por
exemplo.  gcc(1) tem mais detalhes.

Função main() em UNIX precisa retornar int.  Isso é convenção.

Teu programa ficaria assim:

====================
#include <stdio.h>

int main()
{
puts("Alo Mundo");
/* getc() requer um FILE* como parâmetro, stdin é a entrada padrão */
getc(stdin);
/* programas UNIX costumam retornar 0 em caso de sucesso, e outro valor
qualquer para indicar que houve erro -- a critério do programador */
return 0;
}
====================

-- 
Ricardo Nabinger Sanchez     <rnsanchez@{gmail.com,wait4.org}>
Powered by FreeBSD

  "Left to themselves, things tend to go from bad to worse."


Mais detalhes sobre a lista de discussão freebsd