Dr_Lion Posted March 13, 2012 at 07:33 PM Report #443808 Posted March 13, 2012 at 07:33 PM 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.
HappyHippyHippo Posted March 13, 2012 at 07:39 PM Report #443811 Posted March 13, 2012 at 07:39 PM 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
pmg Posted March 13, 2012 at 09:52 PM Report #443828 Posted March 13, 2012 at 09:52 PM 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!
Flinger Posted March 13, 2012 at 11:16 PM Report #443845 Posted March 13, 2012 at 11:16 PM nao sei se o select funcionara com o stdin.
Dr_Lion Posted March 15, 2012 at 10:45 PM Author Report #444139 Posted March 15, 2012 at 10:45 PM 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.
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