我想移植一个简单​​的控制台应用程序,使其在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来完成,例如tigetstrtparmtputs"civis"(光标不可见)和"cup"(光标位置)。这些功能是通过<term.h>定义的。

该程序可能使用了其他功能(并且没有关于从conio.h移植到curses的有用教程)。在诅咒中,提到的功能将是curs_setmove

进一步阅读(terminfo):

  • curses interfaces to terminfo database
  • terminfo - terminal capability data base
  • 关于c++ - 将conio.h书面代码“移植”到curses.h,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55979567/

    10-12 05:28