Usando getch() no Linux, modo fácil

Publicado por Francis W. em 27/10/2008

[ Hits: 23.140 ]

 


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

Outras dicas deste autor
Nenhuma dica encontrada.
Leitura recomendada

Gnuconio, a conio para Windows e GNU/Linux (v0.1)

Autoestudo e certificação C/C++

Limpando a tela sem NCURSES ou clrsrc() - DOS

Microsoft Visual Studio Code no GNU/Linux

STDPRN para GCC

  

Comentários
[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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts