Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [C o C Assembler] Premere tasto senza bloccare l'esecuzione del programma

    Salve a tutti.
    Ho bisogno di una qualche funzione che mi acquisisce un carattere da tastiera senza bloccarmi l'esecuzione del programma. Cioè in pratica che va a leggere dal buffer di tastiera se c'è qualcosa che però non mi blocchi tutto, quindi se c'è lo legge mentre se non c'è va avanti. Una sorta di kbhit() della conio però che mi faccia riconoscere il carattere.
    Devo farlo in C, al limite in C Assembler. Quest'ultimo lo conosco pochissimo, giusto le primissime basi niente di più.
    C'è un modo per farlo?
    Su Internet ho provato a cercare ma non sono riuscito a trovare niente che lo me lo permetta in C.

    Grazie a tutti in anticipo.

  2. #2
    Su che piattaforma lavori?
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Perché la kbhit non va?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  4. #4
    Originariamente inviato da oregon
    Perché la kbhit non va?
    La kbhit non mi permette di riconoscere il tasto premuto ma restituisce solo 1 o 0 nel caso venga premuto un tasto oppure no.

    Lavoro su Windows con il DevC++.
    Purtroppo è un lavoro che devo fare per la scuola (ho 16 anni, l'account con cui scrivo è di mio padre) e dovendo usare la gotoxy della conio2.h non posso spostarmi sotto Linux... Sono costretto ad usare winzozz.

  5. #5
    Utente di HTML.it L'avatar di torn24
    Registrato dal
    Aug 2008
    Messaggi
    551

    ciao

    Non so se è una cavolata o meno , dipende anche da cosa deve fare effettivamente il
    tuo programma

    se usi la funzione getch() all'interno di un thread , che legga di continuo i caratteri premuti
    e modifichi una variabile char globale , non risolveresti ?
    Tecnologia

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da steave67
    La kbhit non mi permette di riconoscere il tasto premuto ma restituisce solo 1 o 0 nel caso venga premuto un tasto oppure no.
    Appunto. E se riconosci la pressione del tasto con la kbhit, la fai seguire da una getch() per ottenere il tasto. La kbhit si usa sempre in congiunzione con la getch ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7

    Re: ciao

    Originariamente inviato da torn24
    Non so se è una cavolata o meno , dipende anche da cosa deve fare effettivamente il
    tuo programma

    se usi la funzione getch() all'interno di un thread , che legga di continuo i caratteri premuti
    e modifichi una variabile char globale , non risolveresti ?
    Voglio fare una specie di snake perciò mi serve riconoscere se l'utente non inserisce nessun tasto di direzione in modo da farlo andare per la sua strada senza subire variazioni. E' un po' complesso da fare ma questo è l'unico limite imposto dal C che ho trovato.

    Originariamente inviato da oregon
    Appunto. E se riconosci la pressione del tasto con la kbhit, la fai seguire da una getch() per ottenere il tasto. La kbhit si usa sempre in congiunzione con la getch ...
    Proverò e ti farò sapere

    EDIT: Grazie! Era proprio quello che volevo fare

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 © 2025 vBulletin Solutions, Inc. All rights reserved.