Frage

Ich habe einige Lesung getan, und ich sehe, dass ich getch verwenden kann () einen Tastendruck zu erhalten. Was ich gesehen habe, ist, dass diese schlechte Praxis betrachtet wird, aber ich gegensätzliche Meinungen gesehen haben. Ich schreibe eine Konsolenanwendung für meine Klasse, und möchte in der Lage sein, einen Marker zu bewegen (*) auf dem Bildschirm auf den Pfeiltasten auf Basis gedrückt wird. Ist getch () der richtige Weg, um dies zu realisieren, oder gibt es eine bessere Methode, um es zu erfassen. Ich möchte, dass sie nur in der Lage sein auf den Pfeil zu drücken, nicht schieben eingeben müssen oder sonst etwas. Ich brauche den Code nicht gesagt, ich möchte nur wissen, ob ich getch vermeiden sollte (), und wenn ja, welche Funktionen gibt es für diese Art von Idee.

War es hilfreich?

Lösung

getch() ist keine Standardfunktion in entweder C oder C ++. Es ist in einigen veralteten Compiler gefunden, wie Turbo C und es ist auch in bestimmten häufig verwendeten Bibliotheken so definiert, wie Flüche , aber in jedem Fall ist es eine C-Funktion, nicht C ++. Für C ++ sollten Sie wahrscheinlich nur Stick mit Standard-C ++ I / O. Wenn Sie dies nicht aus irgendeinem Grunde tun können dann für die meisten tragbare Option gehen, zum Beispiel Flüche.

Andere Tipps

Sie möchten aus dem Terminal in nicht-kanonischen Modus lesen. Verwenden tcsetattr (), um die ICANON-Bit-Flag zu deaktivieren.

Mit getch (), wenn es funktioniert. Warum nicht?

Unter Windows können Sie pdcurses verwenden: http://pdcurses.sourceforge.net/ , das ist kompatibel mit ncurses.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top