'Портирование' написанного кода conio.h на curses.h - PullRequest
1 голос
/ 04 мая 2019

Я хочу портировать простое консольное приложение для запуска на терминале Linux с максимально возможным сохранением его текущего поведения. Это небольшая CLI-игра, использующая conio.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?)

1 Ответ

1 голос
/ 04 мая 2019

conio.h вопросы обычно задают около getch, что примерно соответствует верхнему уровню (проклятия) getch.Однако большая часть conio.h является низкоуровневой, как это, и будет выполняться с использованием terminfo, например, tigetstr, tparm, tputs, с использованием "civis" (курсор-невидим) и "cup" (курсор-положение).Эти функции определяются через <term.h>.

Вероятно, программа использует другие функции (и нет никаких полезных руководств по переносу с conio.h на curses).В curses упомянутыми функциями будут curs_set и move .

Дополнительные сведения (terminfo):

...