Autor Tópico: Função ' getche ' gcc .  (Lida 7302 vezes)

Offline uthacod

  • Usuário Ubuntu
  • *
  • Mensagens: 9
    • Ver perfil
Função ' getche ' gcc .
« Online: 04 de Dezembro de 2015, 00:09 »
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>

int MDC(int A, int B){
   int r;
   while(B!=0){
      r=A%B;
      A=B;
      B=r;
   }
   return A;
}
main(){
   int m,A,B;
   char c;
   do{
      printf("Digite o valor de (A) e (B)");
      scanf("%d %d",&A,&B);
      m=MDC(A,B);
      printf("%d",m);
      printf("\n");
      printf("Continua?(S/N)");
      c=getche();
      printf("\n");
   }while((c=='S')||(c=='s'));
   system("PAUSE");
   return 0;
}

O erro é :
teste.c:3:18: fatal error: conio.h: No such file or directory
 #include<conio.h>
                  ^
compilation terminated.

Se eu eliminar a função getche o programa roda sem erros. O problema é que eu quero a opção de continuar ou não com a execução do código através dos caracteres s(sim) ou n(não). Alguém pode dar uma luz de quais bibliteocas usar no gcc (ubuntu 14.04)

Offline irtigor

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.344
  • Delete, delete, delete!
    • Ver perfil
Re:Função ' getche ' gcc .
« Resposta #1 Online: 04 de Dezembro de 2015, 11:56 »
Conio não faz parte do padrão ISO ou POSIX . A stdio tem a função getchar e getc, também dá pra usar a biblioteca ncurses (getch) -- leve em consideração que a leitura é por padrão feita em buffers. Também não existe o comando pause, então "system("PAUSE");" é inútil.

Obs: use a tag code do fórum pra formatar a apresentação de códigos.

Offline uthacod

  • Usuário Ubuntu
  • *
  • Mensagens: 9
    • Ver perfil
Re:Função ' getche ' gcc .
« Resposta #2 Online: 04 de Dezembro de 2015, 12:55 »
Conio não faz parte do padrão ISO ou POSIX . A stdio tem a função getchar e getc, também dá pra usar a biblioteca ncurses (getch) -- leve em consideração que a leitura é por padrão feita em buffers. Também não existe o comando pause, então "system("PAUSE");" é inútil.

Obs: use a tag code do fórum pra formatar a apresentação de códigos.

Entendi. Amigo como ficaria então código acima descrito por mim com a função getc? por que eu tentei com ela e deu o mesmo erro.

Offline irtigor

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.344
  • Delete, delete, delete!
    • Ver perfil
Re:Função ' getche ' gcc .
« Resposta #3 Online: 04 de Dezembro de 2015, 13:26 »
Com o getc você tem que indicar o stream da onde vai fazer a leitura, se passar stdin (entrada padrão/teclado) é equivalente ao getchar.

Offline uthacod

  • Usuário Ubuntu
  • *
  • Mensagens: 9
    • Ver perfil
Re:Função ' getche ' gcc .
« Resposta #4 Online: 04 de Dezembro de 2015, 17:47 »
Com o getc você tem que indicar o stream da onde vai fazer a leitura, se passar stdin (entrada padrão/teclado) é equivalente ao getchar.

Não entendi. Tem como fazer um código simples pra eu dar uma olhada.

Offline irtigor

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.344
  • Delete, delete, delete!
    • Ver perfil
Re:Função ' getche ' gcc .
« Resposta #5 Online: 04 de Dezembro de 2015, 19:05 »
É exatamente o que vai encontrar por ai... de qualquer forma:

Código: [Selecionar]
#include<stdio.h>

int main()
{
   char c;

   printf("Char: ");
   c = getc(stdin);
   printf("%c\n",c);
   return(0);
}

Offline uthacod

  • Usuário Ubuntu
  • *
  • Mensagens: 9
    • Ver perfil
Re:Função ' getche ' gcc .
« Resposta #6 Online: 04 de Dezembro de 2015, 19:33 »
Gente. Problema resolvido. Era só adicionar o caminho dos arquivos e cabeçalho.(http://ubuntuforum-pt.org/index.php?topic=42890.0) aqui mesmo no fórum tem a dica. Só que antes precisam instalar  os pacotes relativos a biblioteca ncurses.h(http://tutorfreebr.blogspot.com.br/2015/05/como-utilizar-biblioteca-ncursesh.html)  Valeu pela força e fiquem com Deus.

Offline irtigor

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.344
  • Delete, delete, delete!
    • Ver perfil
Re:Função ' getche ' gcc .
« Resposta #7 Online: 04 de Dezembro de 2015, 20:14 »
Como já havia dito o ncurses é uma opção, mas vou deixar claro que pra esse teu exemplo é usar um canhão pra matar mosquito.