Domanda

che sto leggendo dallo standard input usando la chiamata di sistema read () ma c'è una piccola cosa che mi preoccupa. Non posso usare i tasti freccia ... Quello che ho veramente volevo fare era di usare i tasti freccia per andare avanti e indietro all'interno del testo digitato, ma penso che non è così facile ... Allora, che cosa voglio almeno fare , è quello di ignorarli.

In questo momento, premendo uno dei tasti freccia produce un output di strano e voglio evitare che qualsiasi cosa venga scritta sullo standard output (di conseguenza leggere dallo standard input nella mia lettura) chiamata di sistema ().

È questo facilmente possibile raggiungere o non è così facile?

È stato utile?

Soluzione

Per interpretare i tasti freccia il modo in cui si idealmente come a (cioè a muoversi avanti e indietro e modificare l'ingresso), è in genere necessario utilizzare una biblioteca. Per Linux, lo standard è GNU Readline . Speriamo che qualcun altro può dire quello che si usa normalmente per un'applicazione di Windows CLI.

Altri suggerimenti

La risposta dipende in ultima analisi in cui le chiavi vengono. Ho eseguito questo programma sotto Cygwin:

int main(void)
{
    int c=0;

    while( c != 'X' ) {
        c = getchar();
        printf("\nc=%d", c);
    }
}

Ogni volta che un tasto cursore arriva, vedo fuga (27), una staffa, più un altro personaggio. Quindi, se si ottengono risultati del genere, si può saltare 3 tasti ogni volta che si vede un 27. Si potrebbe anche guardare a loro e fare uso di loro!

Come accennato, YMMV, soprattutto per l'O.S., e la funzione di chiave-ottenere attuale si chiama.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top