如何使用curses库清除屏幕的前两行?我看到有deleteln()
命令,但它只清除光标下的行。
另外,第二个问题,命令clear()
是否清除整个屏幕?
答案 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