Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    mi serve unafunzione come la getch() contenuta nella conio.h, ma compatibile

    cioè.... la conio.h nn è una libreria standard a quanto ne so.. nn c'è una funzione che faccia lastessa cosa magari all' interno di librerie standard del C???

    grazie.

  2. #2
    stdio.h
    PyGTK GUI programming
    un impegno concreto: eliminare la k dalle tastiere italiane

  3. #3
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    non so se in stdio.h c'è un metodo che prende in input un carattere senza attendere invio per conferma, controlla magari in qualche reference.
    Cmq per rendere portabile il programma almeno tra windows e linux esiste un porting della libreria conio.h(se n'è parlato sul forum, ora non ricordo il link magari trovi).
    Quindi per differenziare tra conio di win e di lin basta giocare con il preprocessore

    codice:
    ...
    #ifdef linux
    #include "conio.h"
    #elseif def _win32
    #include <conio.h>
    #else 
    #error "OS not supported"
    #endif
    ...
    o qualcosa di simile, naturalmente il file header per linux devi fornirlo assieme ai tuoi sorgenti, magari c'è qualche libreria di linux che ha già una funzione simile ha getch senza usare di terze parti, solo che in programmazione *nix con C/C++ sono veramente inesperto.

    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

  4. #4
    il linguaggio anche nel titolo, please!
    ...Terrible warlords, good warlords, and an english song

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    6
    Ciao...
    Scusate se ho riesumato un thread di un mesetto fa, ma non mi sembrava il caso di aprirne uno nuovo.

    Quello della getch() in ambiente Unix e' un problema che mi perseguita da tempo; implementazioni di conio.h per Unix non ne ho trovate (o meglio, ne ho trovata una ma non funzionava... non ricordo ne' quale, ne' da dove l'avessi scaricata). Stavo pensando: non possiamo implementare noi una funzione che faccia quello che fa getch()? Sono poco esperto di C, ma una funzione che stia in acolto su un segnale (tipo l'interrupt generato dalla tastiera) e che ritorni non appena viene premuto un tasto, non si puo' fare? Il tutto in user space...

    Grazie,
    Gica

  6. #6
    Originariamente inviato da Gica
    Quello della getch() in ambiente Unix e' un problema che mi perseguita da tempo; implementazioni di conio.h per Unix non ne ho trovate (o meglio, ne ho trovata una ma non funzionava... non ricordo ne' quale, ne' da dove l'avessi scaricata). Stavo pensando: non possiamo implementare noi una funzione che faccia quello che fa getch()?
    Ma cosa fa, precisamente, questa getch() e in cosa si differenzia da getchar() ?
    "Qualsiasi esperto ha paura di combattere usando la katana vera. Anch'io. Ma non ignoro la mia paura, riesco ad accettarla, e a metterla da parte accanto a me".

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    6
    Originariamente inviato da Ikitt
    Ma cosa fa, precisamente, questa getch() e in cosa si differenzia da getchar() ?
    La getch() legge un carattere da tastiera e ritorna immediatamente, senza che si prema enter e, soprattutto, senza l'echo del carattere premuto.

  8. #8
    Originariamente inviato da Gica
    Ciao...
    Scusate se ho riesumato un thread di un mesetto fa, ma non mi sembrava il caso di aprirne uno nuovo.

    Quello della getch() in ambiente Unix e' un problema che mi perseguita da tempo; implementazioni di conio.h per Unix non ne ho trovate (o meglio, ne ho trovata una ma non funzionava... non ricordo ne' quale, ne' da dove l'avessi scaricata). Stavo pensando: non possiamo implementare noi una funzione che faccia quello che fa getch()? Sono poco esperto di C, ma una funzione che stia in acolto su un segnale (tipo l'interrupt generato dalla tastiera) e che ritorni non appena viene premuto un tasto, non si puo' fare? Il tutto in user space...

    Grazie,
    Gica
    Su *nix c'è la libreria NCURSES
    http://www.itis.mn.it/linux/quarta/i...00000000000000
    http://ildp.pluto.it/nonLDP/ncurses-intro.html

    il sito ufficiale
    http://www.gnu.org/software/ncurses/ncurses.html

  9. #9
    Originariamente inviato da Gica
    La getch() legge un carattere da tastiera e ritorna immediatamente, senza che si prema enter e, soprattutto, senza l'echo del carattere premuto.
    Allora dovrebbe bastare impostare stdin come non-bloccante e disabilitare l'eco via termios, non dovrebbe essere troppo complicato. Oppure ci dovrebbe essere qualcosa in ncurses, come gia detto.
    "Qualsiasi esperto ha paura di combattere usando la katana vera. Anch'io. Ma non ignoro la mia paura, riesco ad accettarla, e a metterla da parte accanto a me".

  10. #10
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    444
    prova con cin.get(), non so se fa al caso tuo...
    *********************************
    Andrea
    *********************************

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.