在Linux上的GNU C中的ncurses中移动(y,x)

时间:2012-09-13 16:33:58

标签: c ncurses

我使用ncurses有以下代码。我想知道我是否可以使用单个移动功能来打印几行。

例如:

move(25,25);
printw("Line 1\n");
printw("Line 2\n");

如果我不使用移动(26,25),第1行在(25,25)位置打印,但第2行打印在(26,0)。我可以避免第二步并仍然在(26,25)????

打印第2行

1 个答案:

答案 0 :(得分:0)

如果要打印的内容必须对齐,则可以定义新窗口。不久:

#include <ncurses.h>

int main()
{
  WINDOW* mywin;

  initscr();
  cbreak();
  keypad(stdscr, TRUE);


  int height=15;
  int width=30;
  int starty=25;
  int startx=25;

  printw("F9 to exit");
  refresh();

  mywin = newwin(height, width, starty, startx);
  mvwprintw(mywin,0,0,"First line\n");
  wprintw(mywin,"Second line");
  wrefresh(mywin);

  while(getch() != KEY_F(9)) {}

  endwin();
  return 0;
}

如果此方法不合适,则您必须手动移动到要打印的下一个位置。