Domanda

Ho fatto qualche lettura, e vedo che posso usare getch () per ottenere una sequenza di tasti. Quello che ho visto è che questa è considerata una cattiva pratica, però ho visto opinioni contrastanti. Sto scrivendo un'applicazione console per la mia classe, e vorrei essere in grado di spostare un marcatore (*) intorno allo schermo in base ai tasti freccia premuto. È getch () il modo giusto per andare su questo, o c'è un metodo migliore per catturarlo. Io voglio che siano solo in grado di spingere la freccia, non c'è bisogno di spingere entrare o nulla. Non ho bisogno del codice specifico, voglio solo sapere se devo evitare getch (), e in caso affermativo, quali funzioni ci sono per questo tipo di idea.

È stato utile?

Soluzione

getch() non è una funzione standard in C o C ++. Si trova in alcuni compilatori obsoleti, come ad esempio Turbo C ed è definito anche in alcune librerie di uso comune di tali come maledizioni , ma in ogni caso è una funzione C, non C ++. Per C ++ si dovrebbe probabilmente solo bastone con C ++ standard di I / O. Se non è possibile fare questo per qualche motivo quindi andare per l'opzione più portatile, per esempio maledizioni.

Altri suggerimenti

Si desidera leggere dal terminale in modalità non canonica. Usa tcsetattr () per spegnere la bandiera icanon.

Usa getch () se funziona. Perché no?

In Windows è possibile utilizzare pdcurses: http://pdcurses.sourceforge.net/ , che sia compatibile con ncurses.

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