Ir para conteúdo
Fórum Script Brasil
  • 0

Biblioteca conio.h


ChipSet

Pergunta

Estou usando o GCC e tenho encontrado problemas ao compilar um programa simples para limpar a tela.

Sou iniciante e aprendi que para utilizar a função clrscr() eu preciso incluir a biblioteca <conio.h>

Achei que estava comentendo algum erro até encontrar outros exemplos os quais testei e também não funcionaram. :blink:

O código do programa é o seguinte:

#include <stdio.h>
#include <conio.h>

void main (void){

    char s[80];

    puts("Entre com uma frase");
    gets(s);
    puts("Aperta qualquer tecla para limpar a tela");
    getchar();
    clrscr();
    puts("Parabens!");
    getchar();
}

O resultado é o seguinte:

conio.h: No such file or directory

In Function 'main':

warning: return type of 'main' is not 'int'

Alguém sabe me dizer o que há de errado com esta biblioteca?

Já reinstalei o programa e nada foi resolvido.

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Arquivos com extensão .H não são bibiliotecas, mas arquivos de cabeçalho onde, entre outras coisas, se encontram os protótipos das funções utilizadas.

A mensagem de erro diz que esse cabeçalho (ou header) não foi encontrado. O GCC permite que você informe um ou vários diretórios onde ele deve pesquisar. É o switch -I. À frente dele informe o caminho onde o header pode ser encontrado. Não uso muito o GCC, mas até imagino que ele deve ter alguma variável de ambiente onde se pode informar isso e tornar a compilação mais fácil.

Na mensagem de erro também consta um warning sobre o retorno de main(). Essa função nunca retorna void. O retorno é sempre um int. Mas não é nada grave. Por isso que é apenas um warning. :)

Link para o comentário
Compartilhar em outros sites

  • 0

Tá usando plataforma Linux ou Windows??? Tá usando IDE???Qual??(DEVC++,Borland,CodeBlock,...)

Limpar tela em windows:

system("cls");
Limpar tela em linux:
system("clear");
biblioteca a ser usada:
#include <stdlib.h>

Abraços.

Link para o comentário
Compartilhar em outros sites

  • 0
Arquivos com extensão .H não são bibiliotecas, mas arquivos de cabeçalho onde, entre outras coisas, se encontram os protótipos das funções utilizadas.

A mensagem de erro diz que esse cabeçalho (ou header) não foi encontrado. O GCC permite que você informe um ou vários diretórios onde ele deve pesquisar. É o switch -I. À frente dele informe o caminho onde o header pode ser encontrado. Não uso muito o GCC, mas até imagino que ele deve ter alguma variável de ambiente onde se pode informar isso e tornar a compilação mais fácil.

Na mensagem de erro também consta um warning sobre o retorno de main(). Essa função nunca retorna void. O retorno é sempre um int. Mas não é nada grave. Por isso que é apenas um warning. :)

Valeu Maligno! :rolleyes: Obrigado pelo esclarecimento!

Estou espantado com a velocidade de respostas...

Ahm...Não sei ainda usar o switch...se puder dar algum exemplo...

Valeu!

Tá usando plataforma Linux ou Windows??? Tá usando IDE???Qual??(DEVC++,Borland,CodeBlock,...)

Limpar tela em windows:

system("cls");
Limpar tela em linux:
system("clear");
biblioteca a ser usada:
#include <stdlib.h>

Abraços.

Cristiano!

Estou usando o Cygwin, uma espécie de Linux que uso dentro do Windows...

Nele estão instalados os pacotes do GCC.

Utilizo o editor Nano para programar na maioria das vezes...

Aí utilizo o comando gcc nomedoarquivo.c -o nomedoexecutavel

Depois executo com o comando ./nomedoexecutavel

Obrigado pela dica! Vou experimentar! :rolleyes:

Abrço!

Editado por ChipSet
Link para o comentário
Compartilhar em outros sites

  • 0

Conforme a sugestão de Cristiano eu experimentei remover o cabeçalho <conio.h> e colocar o

#include <stdlib.h> e ainda substituí o clrscr por system("clear");

E conforme segustão do Maligno retirei as palavras void do main().

O código ficou assim...

#include <stdio.h>
#include <stdlib.h>
 main (){

    char s[80];

    puts("Entre com uma frase");
    gets(s);
    puts("Aperta qualquer tecla para limpar a tela");
    getchar();
    system("clear");
    puts("Parabens!");
    getchar();
}

e o resultado foi

command not found

cygwin.JPG

Link para o comentário
Compartilhar em outros sites

  • 0
Aqui funciona normalmente (só modifiquei o "clear" para "cls" porque uso windows)

Jonathan & Cristiano & Maligno

Com a ajuda de vocês e um pouco de pesquisa descobri o problema do clear.

O que acontece é que o Cygwin não possui a função clear no pacote básico de instalação

Entendi porque o do Jonathan funcionou. Ele estava usando o cls porque usa windows.

Lembrei de que quando usava Ubuntu 8 eu costumava usar a funcão clear.

A dica de um de vocês me fez compreender que system(clear); estava chamando uma função do próprio sistema operacional.

Então fui pesquisar qual pacote era preciso instalar para obter a função clear.

O pacote é "ncourses" e fica na categoria Utils (Utilitário).

Instalei, testei...e está funcionando!

Estou surpreso em poder resolver esse problema ainda hoje.

Obrigado galera!

Abraços :lol:

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,9k
×
×
  • Criar Novo...