将conio.h书面代码“移植”到curses.h

时间:2019-05-04 04:54:49

标签: c++ linux windows curses conio

我想移植一个简单​​的控制台应用程序,使其在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?)

1 个答案:

答案 0 :(得分:1)

conio.h的问题通常是关于getch的问题,大致对应于上级(诅咒)getch。但是,conio.h的大多数都是较低级别的,就像这样,可以使用terminfo来完成,例如tigetstrtparmtputs"civis"(光标不可见)和"cup"(光标位置)。这些功能是通过<term.h>定义的。

该程序可能还使用了其他功能(并且没有关于从conio.h移植到curses的有用教程)。简而言之,提到的功能将是curs_setmove

进一步阅读(terminfo):