Question

Je suis nouveau en C/C++ et je crée une interface utilisateur texte simple avec NCurses.

Chaque fois que je fais défiler vers le haut/bas avec la molette de la souris ou que j'appuie sur les touches fléchées, la console fait écho à des caractères tels que :

"[[A^[[C^[[B^[[D" 

pour me montrer que j'ai appuyé sur les touches.

Je voudrais empêcher ceux-ci de faire écho et ne faire écho qu'aux touches de base (ponctuation et lettres).

Voici ma boucle principale.Je veux essentiellement que ce soit ma propre console avec les commandes que je crée.

string input;
char inputArr[80];
while (input != "q" && input != "quit" && input != "exit" && input != "leave") {
    printw(" > ");
    refresh();
    getstr(inputArr);
    input = inputArr;
    if (input.substr(0, 3) != "someCommand") {
        printw("\n ~ %s\n\n", inputArr);
        refresh();
    } else
        execCmd();
}
quit();

Pour la plupart, je crois que c'est du C++ mais j'ai une fonction C (qui utilise libCurl).

De plus, n'existe-t-il pas un moyen plus propre de lire des chaînes avec NCurses ?Je n'aime pas vraiment utiliser des tableaux de caractères (je suis habitué à Java).

Était-ce utile?

La solution

Appel noecho() quelque part près de initscr().

Cela évitera d’encombrer votre écran avec des entrées indésirables.Si vous souhaitez que vos utilisateurs voient ce qu'ils tapent plus tard, vous devrez appeler echo() avant pourtant.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top