[英]c++ linux console clear an area of the screen
我正在尝试创建一个功能来清理屏幕上的区域。 这是我的功能:
void clearBuffer(CoordCR start, CoordCR end) const // Clear an area on screen
{
for (int i1 = 0; i1 < end.COLS; i1++)
{
for (int i2 = 0; i2 < end.ROWS; i2++)
{
setCursorPos(start.COLS + i1 - 1, start.ROWS + i2 - 1);
printf(" ");
}
}
}
setCursorPos只是一个函数,它可以更改光标的位置,写入''字符并清除屏幕。 seCursorPos的第一个参数是要输入的cols,第二个参数是行。 我的CoordCR结构是:
struct CoordCR {
int COLS;
int ROWS;
};
我只给该功能的左上角和右下角,她用空格替换所有字符。 该功能在Windows上可以正常使用,但在Linux上却存在问题,我不明白为什么。 感谢帮助。
setCursorPos是Win-API函数。 对于Linux对应者,您可以在以下线程下找到答案: 如何在Linux上的C中设置鼠标光标位置?
好吧... SetCursorPos (注意大小写不同)是Win32函数。 除了对ncurses的简短提及外,建议的链接如何在Linux上的c中设置鼠标光标位置几乎没有关系。 对于给出的简单示例,通常将使用ncurses的低级termcap接口,即tgoto来定位光标。 这样一来,您就可以使用printf写入屏幕。 带有参数的termcap问题提到了这一点-但请阅读整个termcap手册页(您必须首先使用tgetent初始化事物)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.