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

标签 c ncurses

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

例如:

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

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

最佳答案

如果您要打印的内容必须对齐,您可以定义一个新窗口。很快:

#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;
}

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

关于c - 在 Linux 上的 GNU C 中的 ncurses 中移动(y,x),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12410849/

相关文章:

c - 在 avx 中执行相当于 _mm_loaddup_pd 的功能的最快方法是什么?

c - Fscanf 给出段错误

node.js - 通过服务器端脚本使用 node-ncurses 客户端?

linux - 我如何确定一个库(比如说 "cursesw")是否是与 unix/linux 版本一起标准分发的

c - ncurses:窗口颜色不起作用

应用程序内的 C 错误处理

c - 来回发送和接收

c - 数组代码编译错误[c]

c - getch() 确实显示最近输入的字符并跳过输入的所有其他字符

c++ - 无法使用 nixos 推导包含 <ncurses.h> header