如何使用curses库清除屏幕的前两行?

时间:2013-05-29 08:46:18

标签: unix curses

如何使用curses库清除屏幕的前两行?我看到有deleteln()命令,但它只清除光标下的行。

另外,第二个问题,命令clear()是否清除整个屏幕?

2 个答案:

答案 0 :(得分:1)

deleteln()删除该行并移动其余文本。 clrtoeol()清除到当前行的末尾。

您需要使用int move(int y, int x)将光标定位在两条顶行的每一行的开头,然后调用clrtoeol()

clear()清除整个窗口

答案 1 :(得分:1)

parkydr说:“clrtoeol()清除到当前行的末尾。”

这几乎是正确的。 clrtoeol()从光标清除到当前行的末尾。因此,如果您的光标不在行的开头,那么它将不会清除整行。

以下是一个例子:

int y, x;            // to store where you are
getyx(stdscr, y, x); // save current pos
move(0, 0);          // go to the beginning of the first line
clrtoeol();          // clear the line
move(1, 0);          // go to the beginning of the second line
clrtoeol();          // clear the line
move(y, x);          // move back to where you were