Pular para o conteúdo

Usando getch() no Linux, modo fácil

Dica publicada em C/C++ / Miscelânea
Francis W. .frank.
Hits: 23.799 Categoria: C/C++ Subcategoria: Miscelânea
  • Indicar
  • Impressora
  • Denunciar

Usando getch() no Linux, modo fácil

Olá, meu nome é Francis e gostaria de contribuir com esta dica, pois já procurei em vários lugares e não encontrei respostas que funcionassem.

Estou começando a desenvolver em C++ na faculdade e lá usamos Windows e Dev-C++. Porém na hora de portar os meus códigos para o Linux acabo ficando sem o getch(), que uso para dar uma paradinha entre uma função e outra.

Segue abaixo a solução para o problema:

system("read b");

Simples, não?! Aqui usamos um comando de sistema (read) para dar aquela parada que faz falta. O "b" é para representar uma variável, mas pode ser qualquer outra coisa.

Para ficar mais bonito, podemos criar uma função getch no código para deixá-lo mais portável:

void getch(void)
{
   system("read b");
}

Não se esqueça de colocar "void getch(void);" sem aspas antes da seção main().

Dessa maneira poderá usar getch() para situações do tipo "Pressione Enter para continuar".

Espero ter ajudado,

Vlw

Nenhuma dica encontrada.

Lista de IDEs para Programação em Qualquer Distro

Movendo o cursor em C usando Console Escape Sequence

Efetuando cálculo de Aspect Ratio de vídeos em C/C++

Como criar bibliotecas dinâmicas em C/C++

printf("Criando Delay em Linguagem C de forma SIMPLES");

#1 Comentário enviado por allisonvoll em 28/10/2008 - 08:55h
Você pode usar o "cin.get()" da lib "iostream.h"
#2 Comentário enviado por newtonJr. em 18/08/2009 - 13:46h
Dica simples e interessante. Outra forma é troca a funçao getch() pela função getchar();
Um grande abraço a todos. Att.
#3 Comentário enviado por triesse em 03/05/2010 - 15:51h
Muito Obrigado pela sua dica! Ajudou bastante em meu trabalho da faculdade! Parabéns!
#4 Comentário enviado por Patterson em 14/04/2017 - 13:03h
E seu quiser saber qual letra foi digitada? Se eu fizer ch = getch(); não vai funcionar porque não tem como eu pegar o valor da variavel b que foi lida `read b`, essa solução só serve para quando você precisa que o usuário digite um ENTER. Ela não substitui a função getch(); original que lê qualquer caractere pressionado e retorna ele, e sem ENTER. Posso precisar que o susuário digite S (sim) ou N (Não).

Contribuir com comentário

Entre na sua conta para comentar.