Usando getch() no Linux, modo fácil [Dica]
Usando getch() no Linux, modo fácil
Publicado por Francis W. em 27/10/2008
[ Hits: 22.110 ]
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:
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)
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".
[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.
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).