首页 > 解决方案 > Ncurses中的换行符后如何防止光标回到屏幕的最左侧?

问题描述

使用 Ncurses 中的函数 mvprintw(rowOffset, colOffset, textToPrint),当我打印换行符时,如果 colOffset 不是 0,我会得到一个如下所示的矩形:

   xxxxxxxx
x      x
xxxxxxxx

当我希望矩形的其余部分与顶部对齐时

为了

#include <ncurses.h>

    void main()
    {
        initscr();
        mvprintw(7,3,"xxxxxxxx\nx      x\nxxxxxxxx\n");
        refresh();
    }

我怎样才能解决这个问题?

标签: ncurses

解决方案


您可以创建一个从 开始的窗口7,3,并且写入窗口将换行到列偏移量 3,例如,

#include <ncurses.h>

void main()
{
    WINDOW *w;
    initscr();
    w = newwin(10,20, 7, 3);
    wprintw(w, "xxxxxxxx\nx      x\nxxxxxxxx\n");
    wrefresh(w);
    wgetch(w);
}

这将创建一个 10 行窗口。您可以通过考虑实际屏幕尺寸(例如LINES)来创建更大的屏幕。


推荐阅读