簡體   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