我想移植一个简单的控制台应用程序,使其在Linux终端上运行,并尽可能保持其当前行为。这是一个在Windows上使用conio.h的基于CLI的小游戏,我想将其移植到Linux。
所有conio.h特定行如下:
...
HANDLE out = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_CURSOR_INFO cursorInfo;
GetConsoleCursorInfo(out, &cursorInfo);
cursorInfo.bVisible = false; // set the cursor visibility
SetConsoleCursorInfo(out, &cursorInfo);
short int CX=0, CY=0;
COORD coord;
coord.X = CX;
coord.Y = CY;
...
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
...
(并且:我应该使用curses.h还是ncurses.h?)
最佳答案
conio.h
问题通常询问有关getch
的信息,它大致对应于上层(诅咒)getch
。但是,像这样的大多数conio.h
都是较低级别的,并且可以使用terminfo来完成,例如tigetstr
,tparm
,tputs
,"civis"
(光标不可见)和"cup"
(光标位置)。这些功能是通过<term.h>
定义的。
该程序可能使用了其他功能(并且没有关于从conio.h
移植到curses的有用教程)。在诅咒中,提到的功能将是curs_set和move。
进一步阅读(terminfo):
关于c++ - 将conio.h书面代码“移植”到curses.h,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55979567/