Pular para o conteúdo

Usando getch() no Linux, modo fácil

Dica publicada em C/C++ / Miscelânea
Francis W. .frank.
Hits: 23.787 Categoria: C/C++ Subcategoria: Miscelânea
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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");
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
Nenhuma dica encontrada.

MDK (Mix Development Kit) no Projeto GNU

Usando "sscanf" para Dividir String com Delimitadores em C

STDPRN para GCC

C/C++ no modo Hard

Usando funções do sistema em C com "system"

#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.