'Porting' conio.h 编写代码到 curses.h

'Porting' conio.h written code to curses.h

本文关键字:curses 代码 conio Porting      更新时间:2023-10-16

我想移植一个简单的控制台应用程序以在Linux终端上运行,并尽可能保持其当前行为。这是使用Conio.h的一个基于CLI的小游戏。H在Windows上,我想将其移植到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"(CRESOR-INVISIBLE(和"cup"(光标位置(完成。这些功能是通过<term.h>定义的。

可能会使用其他功能(从conio.h到诅咒的移植时没有有用的教程(。在诅咒中,提到的功能将是curs_set并移动。

进一步阅读(终端(:

  • 诅咒界面到terminfo数据库
  • terminfo-终端能力数据库