Dr_Lion Posted March 13, 2012 Report Share Posted March 13, 2012 Ora mais uma vez boa tarde a todos. A minha dúvida hoje prende-se com o método para efectuar uma leitura do teclado (standard input), mas sem que o programa fique em espera por causa dessa mesma leitura. A ideia seria dentro de um ciclo, ter uma leitura, e depois o resto do processamento do ciclo, no entanto se o utilizador não introduzir nada o ciclo segue o seu caminho, e quando o utilizador introduzir uma tecla ela será tratada quando o ciclo voltar a passar por esse ponto. Isto é o que preciso de fazer, no entanto não sei bem por que palavras pesquisar, e na net também não me estou a safar muito bem, alguém tem sugestões? Creio que não é necessário recorrer a coisas complexas como threads e afins. Desde já agradeço a todos pelo tempo dispensado. Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted March 13, 2012 Report Share Posted March 13, 2012 não necessitas de algo complexo como threads ... mas precisas de algo complexo como as funções do SO para receber eventos do teclado que SO tens ? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
pmg Posted March 13, 2012 Report Share Posted March 13, 2012 Podes usar a biblioteca curses (ncurses em Un*x, pdcurses em Windows). HOWTO curses What have you tried? Não respondo a dúvidas por PM A minha bola de cristal está para compor; deve ficar pronta para a semana. Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código! Link to comment Share on other sites More sharing options...
Flinger Posted March 13, 2012 Report Share Posted March 13, 2012 nao sei se o select funcionara com o stdin. Link to comment Share on other sites More sharing options...
Dr_Lion Posted March 15, 2012 Author Report Share Posted March 15, 2012 Ora bem, respondendo ás várias questões, já encontrei umas soluções em código na net e afins. Agora não estou no pc onde tenho as funções, mais tarde já as posto. o sistema que uso é o ubuntu 10.04 - 11.10 Decidi recorrer á função kbhit disponível no borland ou no dev C para windows, para linux tive que criar a "minha" biblioteca. Basicamente a funcão kbhit() verifica se uma tecla foi premida sem bloquear o programa à espera que essa mesma tecla seja premida. Também experimentei outra função, a getch, para ler a tecla sem que esta fosse escrita na consola, no entanto, combinando as duas funções o resultado não era o esperado,( nomeadamente o programa ficava bloqueado á espera que introduzisse uma tecla) pelo que abdiquei da função getch. Não foi necessário recorrer a threads e afins, nem á biblioteca ncurses, pois também li que era possível só funcionar nas janelas. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now