[1] Comentário enviado por tagallo em 24/09/2004 - 15:00h
o getchar le um caractere de forma diferente do getch
qdo vc digita um caractere com o getchar, ele imprime esse caractere na tela e espera por um outro caractere, no caso o que simbolisa o ENTER, dae entao ele salva o caractere que vc entrou na variavel que vc escolheu. o getch le o valor direto, sem precisar do enter e sem mostra-lo na tela, isso é util pra quando vc tem algo do tipo: precione uma tecla para continuar... sem o getch oq eu uso?
outra coisa que eu reparei no gcc + linux é que nao da pra usar a funcao system( "pause" ) do stdlib.h como vc usa no DOS, ficando assim sem uma boa forma de finalizar o programa... o que eu posso usar pra fazer isso no linux + gcc?
A system(...)função em C pega um comando como string (que é uma matriz de caracteres em C) e o passa para o processador / shell de comando padrão do sistema operacional para executá-lo.
No Windows, isso seria feito por cmd.exe, que possui um comando interno pause que imprime algo como "Pressione qualquer tecla para continuar ..." e aguarda um evento do teclado antes de sair.
No entanto, felizmente, o Ubuntu não possui cmd.exe, mas usa sh aqui como seu shell padrão (que é dash internamente), que não possui um pause comando. Você pode usar algo assim:
read -p 'Press Enter to continue...' var
Portanto, no seu código C, a linha pode ser substituída por:
system("read -p 'Press Enter to continue...' var");
Isso tornaria seu programa executável apenas em sistemas Linux com sh shells compatíveis, porém, não funcionaria mais no Windows dessa forma.