C leggere tastiera

di il
3 risposte

C leggere tastiera

Salve a tutti.. sto cercando di fare un programma ma non riesco ad implementarlo. devo fare un programmino che legga qualsiasi cosa battuta dalla tastiera in C.
sapete darmi qualche dritta?? grazie a tutti

3 Risposte

  • Re: C leggere tastiera

    Riusciresti a spiegarti meglio????
    dopo che hai letto qualcosa da tastiera cosa deve fare il programma?????
  • Re: C leggere tastiera

    Il mio intento e leggere qualsiasi tasto battuto da tastiera.. il programma lo legge e poi intanto lo stampa..piu avanti mi occupero di metterlo in un file..dato che la tastiera non funziona a interrupt perche usa il DMA ho trovato in linux i registri in cui vengono salvati i valori letti da tastiera ovvero 0060 0064 pero li stampo e non riesco a capire perche hanno valore costante. diciamo che sto programma e una specie di keylogger anche se poi non verra usato come tale.hai capito cosa devo fare?
  • Re: C leggere tastiera

    Sera,

    se il tuo intento è quello di leggere caratteri da terminale, puoi usare una funzione di alto livello che si chiama getchar definita nell'header stdio.h che prende dallo STDIN il carattere e te lo salva in una variabile. Sfruttando un ciclo while è facile capire come sia possibile leggere e gestire un singolo input alla volta:
    #include <stdio.h>
    int main(void)
    {
        // ...
        char carattere;
        while ( (carattere = getchar()) != EOF) // EOF è dichiarato in stdio.h e puoi invocarlo con la combinazione CTRL + C (a volte CTRL + Z)
        {
            printf("> è stato premuto il tasto %c\n", carattere);
        }
        // ...
        return EXIT_SUCCESS; // = 0
    }
    Nota: con alcune librerie è possibile usare funzioni simili tipo getch (es. gcc) o getche, ma queste NON sono ansi-c compatibili, quindi potrebbero non funzionare su tutti i compilatori.

    Se lo stream del carattere è diverso dallo standard input usa fgetc (senza l'H finale!). Per maggiori informazioni ti consiglio di dare una sbirciatina su google. Se invece intendi fare tutto da te rinunciando a queste funzioni di alto livello, chiedo scusa in anticipo per la risposta inappropriata.

    Nuovamente,
    cordiali saluti.

    Alessandro
Devi accedere o registrarti per scrivere nel forum
3 risposte