+ Responder ao Tópico



  1. #1
    fabiomogi
    Visitante

    Padrão função getch() getchar()

    Ola pessoal ....

    estou tendo problemas...com a função getch() e getchar()! Essas funções teriam q me retornar a tecla pressionada...! mas estou tendo problemas pq eu digito a tecla e ainda preciso pressionar o ENTER! existe alguma outra função q me retorne a tecla pressionada sem a necessidade de paertar a tecla ENTER

    por exemplo:

    # include <stdio.h>

    int main (void)
    {
    char c;

    c=getchar();
    printf("%c",c);

    return 0;
    }

    um codigo simples desse onde eu soh precisaria pressionar uma tecla qualquer ...acabo precisando apertar a tecla Enter tb....se alguem poder ajudar...

    Obrigado....

    []'s

  2. #2

    Padrão função getch() getchar()

    vix cara...eu nao tenho certesa....mas acho q vc vai ter q ler a stdin usando o read....pq por padrao essas funcoes soh leem linhas e nao teclas.....ou seja....vc vai ter q abrir a stdin (ou o teclado) usando o open e depois ler usando o read....eh moh trampo...soh sei na teoria....como q aplica isso eu nao sei nao....

    aaa menos eh claro q vc esteja usando uindous....dai tem uma tal de conio.h q tem uma funcao q eu nao lembro o nome q faz isso....

  3. #3

    Padrão função getch() getchar()

    fala ai cara, blz?

    Nao tenho nenhum exemplo aqui, e nem um site de cabeça q tenha isso, mas vc tera q usar a funcao ioctl(2) e colocar o descritor (FILENO_STDIN) no modo non-canionical (o controle dos bytes ficam por sua conta, nao ha um pre-processamento. Vc pode ate escolher em nao ecoar os chars pra tela e outras maluquices de baixissimo nivel possivel).

    (pra variar, uma otima referencia eh o 'Advanced Programming in the Unix Environment' do R. Stevens. TEM ISSO LA, se vc tiver a chance de arrumar o livro.....)

    mas isso pode te ajudar com mais facilidade: termios(3).

    falow ai.

  4. #4

    Padrão função getch() getchar()

    char ckey;
    scanf("%c", &ckey);

  5. #5

    Padrão função getch() getchar()

    Citação Postado originalmente por ph0enix
    char ckey;
    scanf("%c", &ckey);

    aki num funciono nao cara....o scanf acho q le a entrada ate aperta enter...o q ele quer eh q quando o cara aperte qq tecla q ele ja faca alguma coisa...(eh isso neh??)

  6. #6

    Padrão função getch() getchar()

    Argh, é verdade..
    Bãã. Faz tempo que não uso essas coisas. Mas tá ai um exemplo de como fazer isto...

    http://www.cs.unc.edu/~taylorr/musicbox/src/termio.C

  7. #7
    smeagol_br
    Visitante

    Padrão ...

    olha so.. a funcao getch() esta na biblioteca conio.h....
    vc ta abrindo apenas a stdio.h

    faz assim...

    #include<stdio.h>
    #include<conio.h>



    ............


    flws !

  8. #8
    fabiomogi
    Visitante

    Padrão conio.h naum eh padrão ansi

    E ai pessoal...valeu pelo interesse...

    ....o problema eh q naum posso usar conio.h! ela naum definida pelo padrão ANSI C, se eu naum me engano ela eh da Borland! Por isso a conio.h nem vem no pacote de bibliotecas do gcc! existe algo como getchar()...mas tb preciso apertar enter! Fora q preciso q a função leia caracteres especiais como .: as setas cima, baixo, esquerda,direita ...F1, F2...e assim por diante...!

    quem tiver alguma ideia....ou sober de alguma função desenvolvida...por alguem...ajudaria muito...

    Valeu....Fuiiiii!

  9. #9

    Padrão função getch() getchar()

    #man 3 termios
    dentro do man, procure por "canonical" e/ou "raw mode".
    Ou entao vc le o programa q ph0enix postou, q mexe exatamente com isso.
    De boa, a "funcao desenvolvida por alguem" q vc procura eh o termios(3). Mais q isso, soh se eu pedir pra vc postar o problema pra nós do forum resolver/programar... e espere por isso ate 2020! (nao damos o peixe, mas temos prazer em ensinar a pescar).

    falow!

  10. #10
    fabiomogi
    Visitante

    Padrão agradecimentos

    E ai pessoal...blz

    Valeu pela força ....os toques foram de muita ajuda...

    []'s