繁体   English   中英

c ++ linux控制台清除屏幕区域

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM